Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理文件-使用目录中的所有文件路径_Batch File - Fatal编程技术网

Batch file 批处理文件-使用目录中的所有文件路径

Batch file 批处理文件-使用目录中的所有文件路径,batch-file,Batch File,我正在尝试运行以下代码以浏览目录并修改一组autoCAD图形 FOR %%f in (C:\Users\pzf6bm\Desktop\AutoCad\*.dwg) do start /wait C:\"Program Files"\"Autodesk"\"AutoCAD 2012 - English"\acad.exe “%%f” /b C:\Users\pzf6bm\Desktop\AutoCad\hide.scr 它几乎可以工作,除了一件事,每次检索下一个文件路径时,它都会在字符串的开头

我正在尝试运行以下代码以浏览目录并修改一组autoCAD图形

FOR %%f in (C:\Users\pzf6bm\Desktop\AutoCad\*.dwg) do start /wait C:\"Program Files"\"Autodesk"\"AutoCAD 2012 - English"\acad.exe “%%f” /b C:\Users\pzf6bm\Desktop\AutoCad\hide.scr 
它几乎可以工作,除了一件事,每次检索下一个文件路径时,它都会在字符串的开头添加一个字符,在字符串的结尾添加一个ö。这使autoCAD无法打开文件以执行操作


例如,“C:\test.txt”变成“ôC:\test.txtö”,我不知道为什么会发生这种情况。

只需使用正确的双引号,而不是
“%%f”

"%%f"

您的
%%f
周围有智能引号(可能是从Outlook或Word获得的?)。将它们作为常规引号重新键入,您的ôandö将消失。

编辑:通常,
start
命令需要一组
空白引号,因为第一组引号用作窗口标题。在您的例子中,c:\是一个未引用部分的事实保护了引用部分。感谢@dbenham指出这一点

您的命令(在
start”“
之后)的引号混合得很糟糕,它们通常应该放在
“c:\path\filename.exe”
的开头和结尾,因此请参见下面我的答案,前面还有一组空白引号

使用现代工具,甚至可以引用短路径和文件名,因此很容易记住-只需引用所有术语

FOR %%f in (C:\Users\pzf6bm\Desktop\AutoCad\*.dwg) do start "" /wait "C:\Program Files\Autodesk\AutoCAD 2012 - English\acad.exe" "%%f" /b "C:\Users\pzf6bm\Desktop\AutoCad\hide.scr"

引用太多了。使用
start/wait“C:\Program Files\Autodesk\AutoCAD 2012-English\acad.exe”“%%f”
.Bah,比我快23秒。:-)我有这些引文,以防在地图的某个地方有空白filename@Endoro-在exe路径周围使用引号,就像在注释中一样,需要在exe路径之前使用引号引起来的title参数。@user1296932-仔细阅读Endro的答案。你使用的引语与他建议你使用的引语完全不同。按照他建议的方法修复引号可以解决你的问题。注意,使用EDITPLUS或NOTEPAD++之类的编辑器,而不是文字处理器。即使是记事本——但记事本可能会尝试通过“格式化”为您提供“帮助”。我在文件名中的某个位置有引号,以防有空格。有引号不是问题,这是因为它们是智能引号(ASCII 147和148),而不是标准双引号(ASCII 34)。用手重新键入,而不是复制/粘贴,效果会更好。我认为OP在exe路径中奇怪地使用引号,因此无法将其解释为标题。@dbenham是的,你是对的。前导未加引号的c:\保护引号。