Batch file 基于wmic计算机系统get模型的批处理文件到xcopy文件到文件夹

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

如何创建一个批处理文件,根据“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 /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”
(我似乎无法强制在其中放入两个空格,但应该有两个).打印字符串时,我喜欢在字符串周围加引号,以确保能看到任何虚假的空格。