For loop For循环在批处理文件中工作不正常
我正在尝试使用此批处理文件获取当前操作系统。它是:For loop For循环在批处理文件中工作不正常,for-loop,batch-file,wmic,For Loop,Batch File,Wmic,我正在尝试使用此批处理文件获取当前操作系统。它是: @echo off for /f "skip=1 tokens=1* delims= " %%a in ('wmic path win32_operatingsystem get caption') do set _os=%%a %%b %%c %%d echo You are running %_os%. goto :eof 我的操作系统是windows 7,因此我希望它会返回: You are running Microsoft Wind
@echo off
for /f "skip=1 tokens=1* delims= " %%a in ('wmic path win32_operatingsystem get caption') do set _os=%%a %%b %%c %%d
echo You are running %_os%.
goto :eof
我的操作系统是windows 7,因此我希望它会返回:
You are running Microsoft Windows 7 Ultimate.
但它返回您正在运行%c%d
Why I am getting this result?
有几种方法,其中一种已经在上面的评论中发布,它已经使用
/value
演示了主要的更改。您还可以使用标题本身作为变量名及其值:
@echo off
for /f "delims=" %%a in ('wmic path win32_operatingsystem get caption /value') do set %%a>nul 2>&1
echo %caption%
请参阅,因为
tokens=1*
,所以只有循环变量a
和b
。我建议(“%SystemRoot%\System32\wbem\wmic.exe路径win32\u operatingsystem get caption/Value”)中的%%I设置“\u os=%I”您正在指定两个令牌(1
和*
),但您为变量提供了四个。。。