shell 将appcmd输出重定向到变量

cczfrluj  于 2022-11-16  发布在  Shell
关注(0)|答案(2)|浏览(146)

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

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
b1zrtrql

b1zrtrql1#

如果数据必须通过管道从一个进程传输到另一个进程,则需要转义管道字符。
如果需要执行这两个命令,请将管道符替换为^&,命令串联运算符也已转义

ulmd4ohb

ulmd4ohb2#

对于任何人达到这一点,以下是批处理文件的工作示例,以获得iis站点的物理路径,存储在一个名为'physicalPath'的变量中。这是基于@StuHarper注解中的解释。

@echo off
set site=stackoverflow.com

set appcmd=%systemroot%\system32\inetsrv\AppCmd.exe
set xmlOutput=%appcmd% list app /site.name:%site% /path:"/" /xml

for /f "tokens=*" %%A in ('%xmlOutput% ^| %appcmd% list vdir /in /text:physicalPath') DO SET physcalPath=%%A

echo physcalPath: %physcalPath%
@echo on

相关问题