我的批处理脚本给出文件名,目录名错误

时间:2016-04-11 19:05:52

标签: windows batch-file cmd

当我运行此脚本时

@echo off
for /F "usebackq delims=" %%I in ("%userprofile%\desktop\myfile.txt") do type NUL > "%userprofile%\desktop\user\%%I.mp3"
pause
exit

我收到此错误

  

文件名,目录名或卷标语法不正确

任何人都可以帮助修复错误

1 个答案:

答案 0 :(得分:1)

斯蒂芬和韦斯在评论中都提到了问题的最可能来源。

您的myFile.txt很可能包含某些文件或文件夹的完整路径,包括驱动器号。 %USERPROFILE%还包含带驱动器号的完整路径。假设用户是" someUser",文件中的路径是" c:\ somePath \ someFile.ext",那么你最终得到:

echo nul >"C:\Users\someUser\desktop\user\c:\somePath\someFile.ext.mp3"

这样的错误路径会产生您发布的错误消息。有效路径最多可包含驱动器号后面的单个冒号,但上面有两个冒号。

您可以通过%%~nI仅保留文件名来解决该问题,这会产生:

echo nul >"C:\Users\someUser\desktop\user\someFile.mp3"

我仍然关注"用户"桌面上的文件夹。这看起来很可疑。如果该文件夹不存在,那么您将收到不同的错误消息:The system cannot find the path specified.