![这个 Forfiles 命令语法有什么错误?](https://linux22.com/image/1384978/%E8%BF%99%E4%B8%AA%20Forfiles%20%E5%91%BD%E4%BB%A4%E8%AF%AD%E6%B3%95%E6%9C%89%E4%BB%80%E4%B9%88%E9%94%99%E8%AF%AF%EF%BC%9F.png)
我试图发出以下 FORFILES 命令,但收到了一个令我苦恼的错误(在命令后列出)。
C:\Windows\system32>FORFILES /P %WINDIR%\servicing\Packages /M Microsoft-Windows-InternetExplorer-*9.*.mum /c "cmd /c echo Uninstalling package @fname && start /w pkgmgr /up:@fname /norestart"
ERROR: Invalid syntax. '/c' option is not allowed more than '1' time(s). Type "FORFILES /?" for usage.
我已经检查过该命令几次,它似乎是正确的,但显然不是。我已经验证了路径和参数。我在 Windows 7 32 位 SP1 上以管理员身份运行命令行。任何见解都将不胜感激。
答案1
我认为您将语法复制并粘贴到了 cmd 中。您可能遇到了智能引号问题。自己重新输入脚本,而不是复制并粘贴。或者复制到记事本,删除引号,然后放回引号。然后将其复制并粘贴到 cmd。听起来很傻,但这是一个已知问题。
答案2
您必须使用 Escape-Sign ^ 来表示其他一些符号,例如:
FORFILES /P "%WINDIR%\servicing\Packages" /M "Microsoft-Windows-InternetExplorer-*9.*.mum" /c "cmd ^/c echo ^"Uninstalling package @fname^" ^&^& start ^/w pkgmgr ^/up:@fname ^/norestart"
那么它应该可以工作。我没有用你的线路尝试,但有时会遇到同样的错误。