能否请你建议如何修正以下命令,该命令将删除SVN受控的项
rem @echo off
for /f "tokens=2*" %%i in ('"c:\Program Files\TortoiseSVN\bin\svn.exe" status --no-ignore ^| find "?"') do echo %%i
下面变种不带路径的工作原理:
rem @echo off
for /f "tokens=2*" %%i in ('svn.exe status --no-ignore ^| find "?"') do echo %%i
但我需要通过整个路径与svn.exe。 在这种情况下,输出C:\程序是不是一个有效的程序
试试这个:
for /f "usebackq tokens=2*" %%i in (`"c:\Program Files\TortoiseSVN\bin\svn.exe" status --no-ignore ^| find "?"`) do echo %%i
当我跑了这个问题,我尝试使用“有usebackq”为在Windows命令参考[1]提出:
指定执行后引号的字符串作为命令,和单引号的字符串作为文字字符串命令。 此外,允许设置文件名用引号括起来。
我发现,这仍然给了一个错误约C:\程序不被执行。
然后我记得,那Windows CMD.EXE的有很奇怪的引用规则,其中,如果在执行字符串的第一个和最后一个字符是报价,他们将[2]剥离。
所以,我想这一点,和它的工作对我来说:
for /F usebackq %%d in (`""path to command" arg arg "quoted arg""`) do @echo %%d
[1] http://technet.microsoft.com/en-us/library/cc754900.aspx
[2] http://technet.microsoft.com/en-us/library/cc771320.aspx