2016-01-13 63 views
-1

如何创建一个批处理文件,该文件将基于“wmic computersystem get model”的结果将文件复制到计算机 如果您运行此蝙蝠,您将看到回声代码不起作用。批处理文件到xcopy文件到基于wmic computersystem的文件夹获取模型

@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!" 

回答

1

有几个问题。首先,你错过了一些支架底部if块的else部分:

) else (
    echo "Nothing to see here!" 
) 

接下来,你确定你要使用的/p参数SET?它会提示用户输入,以前从WMIC提取的字符串作为提示。

最后,如果你想给一个变量比较在批处理文件中的字符串,你需要把周围的可变双引号:

if "%MODELT%" == "Latitude E6520" 

当调试和打印字符串的时候,我喜欢这样做像这样的,所以我可以看到,如果有任何虚假的空白,我需要了解:

echo '%PROD%' 

这样,你会看到,如果有空白在字符串的开头或结尾。

+0

这里是更新,仍然if语句不起作用 关闭@echo FOR/F “跳过= 1个delims ==” %%一中( 'WMIC COMPUTERSYSTEM获取模式' )为做( /“%PROD%”==“Surface with Windows 8 Pro”( \t echo“This”是计算机驱动程序复制代码填充码块” )其他( \t \t回声 “没有看这里!” \t) SET PROD =% “” % – StackOverflowGuy

+0

它适用于我,尽管对我来说,解析的字符串在其末尾有两个空格,例如'“Latitude E6520”'(我似乎无法强迫SO在这里放置两个空间,但应该有两个空间)。打印字符串时,我喜欢在它们周围加上引号,以确保能看到任何虚假的空格。 – Sam

相关问题