2016-08-25 2 views
-2

Я пытаюсь сделать инструмент пакетного файла на моей работе, чтобы помочь в устранении неполадок. Я пытаюсь напечатать две переменные на одной строке, но все, что я пробовал, не работает. Как я могу выполнить эхо и вызывать две переменные в одну строку? Вот то, что я до сих пор:Windows Batch Echoing Two Variables On One Line

@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 

Ожидаемый результат ИмяКомпьютера ProcessName. Текущий результат - это только имя_компьютера. Я обнаружил, что имя процесса не сохраняется по какой-либо причине даже после ввода пользователем значения.

+1

вы знаете, что вам нужно ввести что-то после того, как «Введите имя процесса или ID:» подскажите? Если вы это сделаете, то отлично! –

+0

Какова значение% processName%, которое вы вводите? Способ, которым вы его написали, - это правильный способ отбросить две переменные рядом друг с другом. Нет причин для того, чтобы имя процесса не было установлено, если вы не начали его с '' 'или' '' или что-то. – SomethingDark

+0

processName - это что-либо, введенное пользователем, например, iexplore, svchost и т. Д. – TheEliteTech

ответ

0

Поскольку aschipfl уже указано в комментариях, вы должны использовать Delayed Expansion. Добавьте setlocal EnableDelayedExpansion в начало вашего скрипта и везде, где вы используете переменную, установленную в том же наборе скобок, вы должны изменить % на передней и задней части вашей переменной на !.

Вы можете проверить это самостоятельно с этим:

@echo off 
setlocal EnableDelayedExpansion 
set foo=bar 
If ""=="" (
set foo=foobar 
echo."No Expansion" %foo% 
echo."Expanded " !foo! 
) 
Pause 

У меня была проблема с For-Loop, а также и с отложенным Expansion теперь все работает отлично. Вы должны попробовать, что из ...

Привет

geisterfurz007