Пакетный файл не назначает содержимое файла переменной - PullRequest
0 голосов
/ 11 декабря 2018

Я пишу этот командный файл.Мне нужно присвоить содержимое временного файла переменной.Я уже сделал это в том же файле, и он работает, поэтому я не уверен, почему он не работает.

@echo off

rem set Microsoft Windows Version value to variable 
ver > myVersion.txt
set /p  compver = < myVersion.txt
del myVersion.txt

rem set computer hostname value to variable 
hostname > compName.txt
set /p myCompName = < compName.txt
del compName.txt

echo Hello %username%, you are currently logged into %myCompName%.
echo It is %time%, on %date%.
echo You are using a PC that is running %compver%

Когда я запускаю этот пакетный файл, имя хоста отображается, но версия не 'т.

Результат:

Hello John, you are currently logged into JohnDoe.
it is 3:06:04:43, on Tue 12/11/2018
you are using a PC that is running .

1 Ответ

0 голосов
/ 11 декабря 2018

Все довольно сложно, я думаю ... Вы можете просто использовать for /f для анализа вывода команды, которую вы хотите, как в следующем примере:

@echo off

rem set Microsoft Windows Version value to variable 
for /f "delims=" %%A IN ('ver') do set "compver=%%A"

rem set computer hostname value to variable 
for /f "delims=" %%A IN ('hostname') do set "myCompName=%%A"

echo Hello %username%, you are currently logged into %myCompName%.
echo It is %time%, on %date%.
echo You are using a PC that is running %compver%
rem pause

Использовать опцию delims= неразбить вывод команды, заключенной в '' символов.

...