DOS 回显 %variable% "Echo is ON"
DOS echo %variable% "Echo is ON"
我有一个dos批处理文件。
mycommand.exe>c:\temp
find /B Serv c:\temp>c:\temp2
set /p var1=<c:\temp2
SET var2=%var1:~-7%
echo %var2%
这只是 DOS,不是 windows 环境。
问题是,批处理文件输出是:
"Echo is ON"。无法回显 VAR2 变量。
mycommand.exe 是一个简单的应用程序。不重要。
> type c:\temp"
VERSION 45.2
TAG1 NUMBER is 1234567
Serv NUMBER is 9654754
> type c:\temp2
c:temp Serv NUMBER is 9654754
如果我想回显 VAR2 变量,我该怎么办?
我不能使用 "setlocal enabledelayedexpansion" 因为 setlocal "Command or filename not recognized"。
编辑:我到底想要什么?
我想 ECHO mycommand.exe 输出第 3 行最后 7 个字符。就这些了。
"good old DOS"老了,但不是很好
基本上可以通过构建一个临时的 .bat 文件来解决您的问题。
这里有详细描述:
https://support.microsoft.com/en-us/kb/66292
我没有可用的 DOS,所以我无法测试,但这应该适合你:
mycommand.exe>c:\temp.txt
find "Serv " c:\temp.txt>c:\temp2.txt
REM init.txt should already exist
REM to create it:
REM COPY CON INIT.TXT
REM SET VARIABLE=^Z
REM ( press Ctrl-Z to generate ^Z )
REM
REM also the file "temp2.txt" should exist.
copy init.txt+temp2.txt varset.bat
call varset.bat
for %%i in (%variable%) do set numb=%%i
echo Server number is: %numb%
REM just because I'm curious, does the following work? :
set var2=%variable%
echo var2 is now %var2%
init.txt
的手动创建只需要完成一次,如果你能忍受的话,它总是创建一个同名的变量(因此最后两行,所以你可以使用相同的init.txt翻来覆去-请反馈,是否有效-我很好奇)
我有一个dos批处理文件。
mycommand.exe>c:\temp
find /B Serv c:\temp>c:\temp2
set /p var1=<c:\temp2
SET var2=%var1:~-7%
echo %var2%
这只是 DOS,不是 windows 环境。
问题是,批处理文件输出是: "Echo is ON"。无法回显 VAR2 变量。
mycommand.exe 是一个简单的应用程序。不重要。
> type c:\temp"
VERSION 45.2
TAG1 NUMBER is 1234567
Serv NUMBER is 9654754
> type c:\temp2
c:temp Serv NUMBER is 9654754
如果我想回显 VAR2 变量,我该怎么办? 我不能使用 "setlocal enabledelayedexpansion" 因为 setlocal "Command or filename not recognized"。
编辑:我到底想要什么? 我想 ECHO mycommand.exe 输出第 3 行最后 7 个字符。就这些了。
"good old DOS"老了,但不是很好
基本上可以通过构建一个临时的 .bat 文件来解决您的问题。
这里有详细描述:
https://support.microsoft.com/en-us/kb/66292
我没有可用的 DOS,所以我无法测试,但这应该适合你:
mycommand.exe>c:\temp.txt
find "Serv " c:\temp.txt>c:\temp2.txt
REM init.txt should already exist
REM to create it:
REM COPY CON INIT.TXT
REM SET VARIABLE=^Z
REM ( press Ctrl-Z to generate ^Z )
REM
REM also the file "temp2.txt" should exist.
copy init.txt+temp2.txt varset.bat
call varset.bat
for %%i in (%variable%) do set numb=%%i
echo Server number is: %numb%
REM just because I'm curious, does the following work? :
set var2=%variable%
echo var2 is now %var2%
init.txt
的手动创建只需要完成一次,如果你能忍受的话,它总是创建一个同名的变量(因此最后两行,所以你可以使用相同的init.txt翻来覆去-请反馈,是否有效-我很好奇)