[英]Pass value using pipe symbol to a powershell Start-Process command, from cmd window
我有一个如下所示的批处理脚本。 我想从终端窗口
(cmd)<\/code>调用此脚本,方法是使用
powershell<\/code>
Start-Process<\/code>命令(在 Azure ARM 模板中执行此<\/em>操作)运行它。
我想在调用脚本时传递
INPUT<\/code>值,可能是使用管道符号。
无法通过管道符号将
INPUT<\/code>值传递给
Start-Process<\/code>命令。
我错过了什么吗? 我怎样才能实现这一点(无需对此批处理文件进行任何修改)<\/em> ?
@echo off
SETLOCAL EnableDelayedExpansion
set INPUT=
set /P INPUT=Type yes or no: %=%
echo[
echo actually typed %INPUT%
IF "%INPUT%"=="n" goto :CLICKEDNO
IF "%INPUT%"=="N" goto :CLICKEDNO
IF "%INPUT%"=="NO" goto :CLICKEDNO
IF "%INPUT%"=="no" goto :CLICKEDNO
IF "%INPUT%"=="No" goto :CLICKEDNO
IF "%INPUT%"=="yes" goto :CLICKEDYES
IF "%INPUT%"=="Yes" goto :CLICKEDYES
IF "%INPUT%"=="Y" goto :CLICKEDYES
IF "%INPUT%"=="y" goto :CLICKEDYES
:CLICKEDYES
echo Typed yes
goto :eof
:CLICKEDNO
echo Typed no
goto :eof
echo end of file
您不需要为每种情况进行匹配。 使用
if \/i<\/code>来匹配不区分大小写,我们还需要使用
%1<\/code>来指定:
@echo off
echo Type Yes/no & set /P "in=%1"
if /i "%in%" == "n" goto :no
if /i "%in%" == "no" goto :no
if /i "%in%" == "y" goto :yes
if /i "%in%" == "yes" goto :yes
:yes
echo Typed yes
goto :eof
:no
echo Typed no
goto :eof
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.