次のコマンドを実行しようとしています。
forfiles /p ..\Schemas /m *.xsd /c "cmd /c ""C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\xsd.exe @path /classes"""
ただし、次のように失敗します。
ERROR: Invalid argument/option - 'Files'.
Type "FORFILES /?" for usage.
これらも機能しません:
forfiles /p ..\Schemas /m *.xsd /c "cmd /c \"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\xsd.exe\" @path /classes"
forfiles /p ..\Schemas /m *.xsd /c "cmd /c ^"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\xsd.exe^" @path /classes"
渡されるパスにcmd
スペースが含まれているため、間違いなく失敗しています。通常、引数全体を引用することでこれを解決します。ただし、二重引用符を渡す方法はないようです。
では、Windows の forfiles コマンドからフル パスを指定してコマンドを実行するにはどうすればよいでしょうか。