Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
For loop For循环在批处理文件中工作不正常_For Loop_Batch File_Wmic - Fatal编程技术网

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
*
),但您为变量提供了四个
。。。