我的perl脚本文件包含具有长文件名的变量,如"C:\Program Files\Some Folder\MyFile.txt"
。
路径中提到的文件不存在。如何将其转换为短文件名(8.3)
格式?
答案 0 :(得分:3)
你做不到。短名称无法保证。您只能询问现有文件的实际名称。请注意,如果不同的长名称文件已存在该名称的短文件,则短名称可能会更改。
call :myshortfunction c:\windows
echo %sn%
pause
:myshortfunction
set sn=%~s1
http://blogs.msdn.com/b/oldnewthing/archive/2004/04/14/113052.aspx
我确信每个人都看到了长文件名的自动生成的短名称。对于长名称“file.txt的长名称”,如果存在大量冲突,您可能会得到“LONGNA~1.TXT”或可能是“LO18C9~1.TXT”。
你可能不知道的是,有时根本没有波浪形!
每个文件系统决定如何实现短文件名。 Windows 95专门使用“~n”方法。 Windows NT添加了十六进制散列溢出技术。但是一些文件系统(如Novell)只是截断了名称。 Novell服务器上的“file.txt的长名称”将出现在“LONGNAME.TXT”中。