Batch file 基于wmic计算机系统get模型的批处理文件到xcopy文件到文件夹
如何创建一个批处理文件,根据“wmic computersystem get model”的结果将文件复制到计算机上 如果您运行此bat,您将看到回显代码不起作用Batch file 基于wmic计算机系统get模型的批处理文件到xcopy文件到文件夹,batch-file,Batch File,如何创建一个批处理文件,根据“wmic computersystem get model”的结果将文件复制到计算机上 如果您运行此bat,您将看到回显代码不起作用 @echo off for /f "skip=1 delims==" %%a in ( 'wmic computersystem get model' ) do ( for /f "tokens=* delims=" %%# in ("%%a") do set PROD=%%a ) REM echo %PROD% SET
@echo off
for /f "skip=1 delims==" %%a in (
'wmic computersystem get model'
) do (
for /f "tokens=* delims=" %%# in ("%%a") do set PROD=%%a
)
REM echo %PROD%
SET /p MODELT=%PROD%
if %MODELT%=="Latitude E6520" (
echo "This is code-block for computer driver copy code stuff"
) else
echo "Nothing to see here!"
有几个问题。首先,底部
if
块的else
部分缺少一些括号:
) else (
echo "Nothing to see here!"
)
接下来,是否确实要使用/p
参数设置?它将提示用户输入,以您以前从WMIC提取的字符串作为提示
最后,如果要将变量与批处理文件中的字符串进行比较,需要在变量周围加双引号:
if "%MODELT%" == "Latitude E6520"
在调试和打印字符串时,我喜欢这样做,以便查看是否存在我需要了解的虚假空白:
echo '%PROD%'
这样,您将看到字符串的开头或结尾是否有空格。这是更新,但if语句仍然不起作用@echo off for/f“skip=1 delims==”%a in('wmic computersystem get model')do(for/f“tokens=*delims=”%#in(“%%%a”)do set PROD=%a)如果“%PROD%”==”Surface with Windows 8 Pro“(echo“这是计算机驱动程序复制代码的代码块”)else(echo“此处无需查看!”)SET PROD=%”它对我有效,但对我来说,解析的字符串末尾有两个空格,例如“Latitude E6520”
(我似乎无法强制在其中放入两个空格,但应该有两个).打印字符串时,我喜欢在字符串周围加引号,以确保能看到任何虚假的空格。