【问题标题】:Redirecting appcmd output to a variable将 appcmd 输出重定向到变量
【发布时间】:2014-11-06 11:26:34
【问题描述】:

我正在尝试运行以下命令:

FOR /F "tokens=* delims=" %A IN ('C:\windows\system32\inetsrv\appcmd.exe list app /site.name:"car" /xml | C:\windows\system32\inetsrv\appcmd.exe list vdir /vdir.name:"car/" /text:physicalPath') DO SET Variable=%A

但是得到以下错误:

| was unxepected at this time

【问题讨论】:

    标签: shell cmd appcmd


    【解决方案1】:

    如果数据必须从一个进程传送到另一个进程,则需要对管道字符进行转义。应该是^|

    如果您需要执行两个命令,请将管道字符替换为^&,命令连接运算符,也已转义

    【讨论】:

    • 非常感谢。请提出一个后续问题 - 我希望命令窗口在运行上述命令后保持打开状态。但它不会,即使是停顿也不行。谢谢
    • @StuHarper,这是一个批处理文件吗?如果没有,你是如何运行命令的?
    • @StuHarper,在批处理文件 (cmd) 中,for 可替换参数也需要转义,它是 %%A 而不是 %A。如果您没有更改此设置,则会出现取消执行的语法错误。
    • 谢谢,我试过了,但是收到了“%%A 在这个时候出乎意料”的消息,所以把它改回 %A
    • @StuHarper,我不明白您如何获得所描述的行为。你能在你的批处理文件中发布(更好的是一个新问题,cmets 太有限了)你的批处理文件中的代码吗?
    猜你喜欢
    • 2014-10-31
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 2022-01-01
    相关资源
    最近更新 更多