我試着寫在Windows XP中,它接受一個完全合格的路徑名和輸出8.3短名稱版本的批處理文件...批處理參數%〜S1提供了不正確8.3短名
@echo off
echo "%~s1"
我所遇到其中此輸出不正確的路徑和文件中的一個特定的情況下...
C:\>test.bat "C:\Documents and Settings\angus\Local Settings\Temporary Internet Files\Content.IE5\2JSTM34V\62[1].ja2"
"C:\DOCUME~1\angus\LOCALS~1\TEMPOR~1\Content.IE5\2JSTM34V\62_1_~1.JA2M34V\62[1].ja2"
注意的是,上述輸出(「C:\ DOCUME〜1個\安格斯\ LOCALS〜1 \ TEMPOR〜1 \ Content.IE5 \ 2JSTM34V \ 62_1_〜1.JA2M34V \ 62 [1] .ja2「)不存在。但是,如果從該輸出中刪除「.JA2M34V \ 62 [1]」部分,則生成的字符串將成爲原始輸入文件的有效路徑。
這似乎是在文件名中使用括號([])的問題。如果我創建在同一個目錄中的文件62.ja2,輸出將是正確的......
C:\>test.bat "C:\Documents and Settings\angus\Local Settings\Temporary Internet Files\Content.IE5\2JSTM34V\62.ja2"
"C:\DOCUME~1\angus\LOCALS~1\TEMPOR~1\Content.IE5\2JSTM34V\62.ja2"
這是在Windows中的錯誤?有沒有人知道是否有一個解決方法來允許批處理文件正確處理這個文件名?
沒有結果發生,這是錯誤代碼。您正在使用一種過時的黑客攻擊,僅爲了向後兼容愚蠢的軟件而存在。不要使用短名稱。 –