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

时间:2013-11-01 19:31:36

标签: 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无法打开文件来执行操作。

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

3 个答案:

答案 0 :(得分:2)

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

"%%f"

答案 1 :(得分:1)

你的%%f周围有智能引号(也许你是从Outlook或Word得到的?)。将它们重新命名为常规报价,你的ô和ö将会消失。

答案 2 :(得分:0)

编辑:通常start命令需要blank set of quotes after it,因为第一组引号用作窗口标题。在您的情况下,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"