vielleicht kannst du ein paar mehr details sagen? Wo willst du es ermitteln und soll die ermittelte notation iwie weiterverarbeitet werden? wenn ja in welcher form/sprache?
Du schreibst leider nicht, wer den Dateinamen in welcher Form weiterverarbeiten soll. Mit Schalter /x gibt dir den 8.3-Namen mit aus. Für's menschliche Auge reicht vielleicht dir oder die kommende Batch, deren String auf standard out gepipet und redirected werden kann. Nur der Vollständigkeit halber, ich nehme an, du hast einfach den .NET tag vergessen.
:: lfn2dos.bat :: ===========
:: Example -> stdout :: ----------------- :: lfn2dos -> (nothing) :: lfn2dos "C:\Documents and Settings\All Users\Application Data\Microsoft\Media Player\UserMigratedStore_59R.bin" -> (olddos path) :: lfn2dos . -> (olddos path of current directory)
:: Redirection :: ----------- :: Redirection of output is of course possible, e.g.: lfn2dos . > c:\text\olddospath.txt
:: @for %%I in (%1) do @echo vollstaendig %%~sI :: @for %%I in (%1) do @echo original %%~fI :: @for %%I in (%1) do @echo Pfad %%~dI%%~psI :: @for %%I in (%1) do @echo Dateiname %%~nsI