Windows批处理在一条线上回显两个变量

时间:2016-08-25 20:30:56

标签: windows batch-file command-prompt

我正在尝试在我的工作中制作批处理文件工具以协助进行故障排除。我试图在一行上打印两个变量,但我尝试过的所有内容都不起作用。如何完成回显并将两个变量调用到一行?以下是我到目前为止的情况:

@echo off
title Get Remote Processes
echo Get Remote Processes
set /p computerName="Enter workstation ID or IP address: "
echo %computerName%
echo Getting remote processes...
echo.
pslist \\%computerName%
echo.
set /p answer1="Would you like to kill a process (Y or N)? "
echo %answer1%
IF /i %answer1%==N (
    echo.
    cmd /k
) ELSE (
    set /p processName="Enter process name or ID: "
    echo %processName% %computerName%
    pskill \\%computerName% %processName%
)
echo.
cmd /k
  

预期结果是ComputerName ProcessName。目前的结果只是ComputerName。我发现即使在用户输入值之后,也没有因某种原因存储processName。

1 个答案:

答案 0 :(得分:0)

正如aschipfl在评论中已经说明的那样,你必须使用延迟扩展。 将setlocal EnableDelayedExpansion添加到脚本的开头,无论您使用在同一组括号中设置的变量,都必须将变量前后的%更改为{{1} }。

你可以自己测试一下:

!

我遇到了For-Loop的问题,并且延迟扩展现在一切正常。你应该尝试一下......

问候

geisterfurz007