我想一个长文件名转换为Windows上的短文件名(8.3)。
一个批处理文件的命令行参数按预期工作:
short.bat:
@echo OFF
echo %~s1
主叫short.bat C:\Documents and Settings\User\NTUSER.DAT
返回C:\DOCUM~1\USER\NTUSER.DAT
不过,我不喜欢有一个额外的.bat文件这一点。 我宁愿称之为cmd.exe
从Ruby脚本整个命令。 我怎样才能做到这一点?
作为一个中间步骤我试图硬编码在批处理文件的路径,但是,这并不工作:
short1.bat:
@echo OFF
SET filename="C:\Documents and Settings\User\NTUSER.DAT"
echo %filename%
echo %~sfilename%
echo %filename%
工作,但echo %~sfilename%
提供了以下错误:
The following usage of the path operator in batch-parameter
substitution is invalid: %~sfilename%
For valid formats type CALL /? or FOR /?
如果short1.bat的作品,我怎么能转换到这一个班轮可与被称为cmd.exe \c ...
?
还有另外一个问题( 如何获得DOS路径,而不是Windows路径 ),然而,一个是专门要求当前目录的路径。