如何告诉FORFILES在路径上执行命令?

时间:2009-02-03 20:26:43

标签: windows batch-file cmd

我在以下Windows Server 2k3批处理命令中遗漏了一些关于转义字符串或空格的内容(显而易见?)。

FORFILES -m *.wsp -c "CMD /C C:\Program^ Files\Common^ Files\Microsoft^ Shared\web^ server^ extensions\12\bin\stsadm.exe^ -o^ addsolution^ -filename^ @FILE"

导致以下错误

  

'C:\ Program Files \ Common Files \ Microsoft Shared \ web server extensions \ 12 \ bin \ stsadm.exe -o addsolution -filename“foobar.wsp”'无法识别为内部或外部命令,可操作程序或批处理文件。

但我无法弄清楚原因。我正在工作Mr. Simon Sheppard's fine documentation

2 个答案:

答案 0 :(得分:10)

需要引用路径,并且必须转义引号。

FORFILES -m *.wsp -c "CMD /C ^0x22C:\Program^ Files\Common^ Files\Microsoft^ Shared\web^ server^ extensions\12\bin\stsadm.exe^0x22 -o^ addsolution^ -filename^ @FILE"

一位同事建议使用十六进制“,我最终发现十六进制需要转义。

答案 1 :(得分:2)

另一个可能的答案是使用你通过dir / X获得的旧8.3名称。

喜欢:C:\ PROGRA~1而不是C:\ Program Files。