【问题标题】:my batch script gives file name, directory names error我的批处理脚本给出了文件名、目录名错误
【发布时间】:2016-08-02 02:45:49
【问题描述】:

当我运行这个脚本时

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

我收到这个错误

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

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

【问题讨论】:

  • 查看%%I的内容。你可能想要%%~nxI 之类的东西。请参阅for /? 寻求帮助。
  • 在不知道 myfile.txt 中的内容的情况下,很难看到真正发生了什么。您可以发布 myfile.txt 的示例吗?
  • type NUL > 替换为echo 以查看文件名并与Naming Files, Paths, and Namespaces 规则进行比较。

标签: windows batch-file cmd


【解决方案1】:

Stephan 和 Wes 都在他们的 cmets 中提到了问题的最可能根源。

您的 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.

【讨论】:

  • @Wes Larson 文本文件的每一行只包含不同的名称。该脚本的主要目的是使用文本文件中的名称创建一个 Mp3 文件。
猜你喜欢
  • 2021-12-10
  • 2012-10-07
  • 1970-01-01
  • 2016-08-16
  • 1970-01-01
  • 1970-01-01
  • 2014-10-24
  • 1970-01-01
  • 2012-03-12
相关资源
最近更新 更多