我正在尝试在我的工作中制作批处理文件工具以协助进行故障排除。我试图在一行上打印两个变量,但我尝试过的所有内容都不起作用。如何完成回显并将两个变量调用到一行?以下是我到目前为止的情况:
@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。
答案 0 :(得分:0)
正如aschipfl在评论中已经说明的那样,你必须使用延迟扩展。
将setlocal EnableDelayedExpansion
添加到脚本的开头,无论您使用在同一组括号中设置的变量,都必须将变量前后的%
更改为{{1} }。
你可以自己测试一下:
!
我遇到了For-Loop的问题,并且延迟扩展现在一切正常。你应该尝试一下......
问候
geisterfurz007