【问题标题】:Convert long file name to short file将长文件名转换为短文件
【发布时间】:2015-06-05 03:42:57
【问题描述】:

我有一个 perl 脚本文件,其中包含具有长文件名的变量,例如 "C:\Program Files\Some Folder\MyFile.txt"

路径中提到的文件不存在。如何将其转换为短文件名(8.3) 格式?

【问题讨论】:

  • 您想知道不存在的文件的短名称吗?这与试图知道它的大小或创建日期一样:没有办法猜测它

标签: perl batch-file


【解决方案1】:

你不能。不保证短名称。您只能询问现有文件的短名称实际上是什么。请注意,如果该名称的短文件已存在于不同的长名称文件中,则短名称可能会更改。

call :myshortfunction c:\windows
echo %sn%
pause

:myshortfunction
set sn=%~s1

http://blogs.msdn.com/b/oldnewthing/archive/2004/04/14/113052.aspx

我相信每个人都看过自动生成的长文件名的短名称。对于长名称“Long name for file.txt”,如果有很多冲突,您可能会得到“LONGNA~1.TXT”或“LO18C9~1.TXT”。

您可能不知道的是,有时根本没有波浪号!

每个文件系统都决定如何实现短文件名。 Windows 95 独占使用“~n”方法。 Windows NT 添加了十六进制散列溢出技术。但有些文件系统(如 Novell)只是截断名称。 Novell 服务器上的“file.txt 的长名称”将显示为“LONGNAME.TXT”。

【讨论】:

    猜你喜欢
    • 2012-04-30
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    • 2010-11-06
    • 2012-07-26
    • 1970-01-01
    相关资源
    最近更新 更多