我需要运行appcmd.exe
但运行cmd.exe来查询IIS网站,我还需要重定向输出。
该命令应如下所示:
cmd /c "c:\windows\system32\inetsrv\appcmd.exe list site MySite" > c:\output.txt
这很好用,但是当我在路径中有空格时遇到问题,在这种情况下我需要使用引号。理想情况下,我会这样做:
cmd /c ""c:\windows\system32\inetsrv\appcmd.exe" list site "MySite"" > "c:\output.txt"
但这不起作用 - 任何想法?
答案 0 :(得分:2)
“cmd / c”显示的帮助屏幕显示以下消息:
If /C or /K is specified, then the remainder of the command line after
the switch is processed as a command line, where the following logic is
used to process quote (") characters:
1. If all of the following conditions are met, then quote characters
on the command line are preserved:
- no /S switch
- exactly two quote characters
- no special characters between the two quote characters,
where special is one of: &<>()@^|
- there are one or more whitespace characters between the
the two quote characters
- the string between the two quote characters is the name
of an executable file.
2. Otherwise, old behavior is to see if the first character is
a quote character and if so, strip the leading character and
remove the last quote character on the command line, preserving
any text after the last quote character.
使用第2点中提到的“旧”行为。按正常方式键入/ c之后的所有内容,但将/ c后面的所有内容括在引号中。例如:
"c:\windows\system32\inetsrv\appcmd.exe" list site "MySite" > "c:\output.txt"
变为
cmd /c ""c:\windows\system32\inetsrv\appcmd.exe" list site "MySite" > "c:\output.txt""
答案 1 :(得分:0)
cmd /c c:\windows\system32\inetsrv\appcmd.exe list site MySite > c:\output.txt
答案 2 :(得分:0)
这可能有效:
cmd /c "'c:\windows\system32\inetsrv\appcmd.exe' list site 'MySite'" > "c:\output.txt"