[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 批处理文件如何用If命令判断计算机名?

如题,我想实现的功能是利用批处理判断计算机名,如果相同执行run1 如果不相同则执行run2,但是不知道为什么运行我的批处理后会两条语句都同时执行的,既执行了Run1又执行了Run2,求助。
  1. @echo off
  2. if %computername%=="pc20801013" goto run1 else goto run2
  3. :run1
  4. start test1.txt
  5. :run2
  6. start test2.txt
复制代码

  1. @echo off
  2. if "%computername%"=="pc20801013" (
  3.     goto :run1
  4. ) else (
  5.     goto :run2
  6. )
  7. goto :end
  8. :run1
  9. start test1.txt
  10. goto :end
  11. :run2
  12. start test2.txt
  13. goto :end
  14. :end
  15. pause
复制代码

TOP

本帖最后由 x9tiancmd 于 2011-12-16 14:06 编辑
如题,我想实现的功能是利用批处理判断计算机名,如果相同执行run1 如果不相同则执行run2,但是不知道为什么 ...
gzvtc46 发表于 2011-12-16 12:23

@echo off
::仔细看颜色处
if %computername%=="pc20801013" goto run1 else goto run2
exit
start test1.txt
goto :eof
start test2.txt
goto :eof
顺便奉告楼主一句, 像你写这个用于大量机部局的网络. 照你这样判断下去,几台机子没问题, 成百上千台,你打算把这批处理写到和长江一样长么
因当再批处理语法上,和计算机名上多下功夫. 这种本末倒至的,批处理不要也罢. 
 

本人给你个思路 你计算机命名可以通过一个规则,不通的名运行不同的程序.
  1. @echo off
  2. goto %computername:~0,3%
  3. pause&exit
  4. :PCA
  5. echo.计算机为A类运行
  6. goto :eof
  7. :PCB
  8. echo.计算机为B类运行
  9. goto :eof
复制代码
    ╭╩═╮
╭╯G O ╠ 雁过留声
╰⊙═⊙╯

TOP

awk 发表于 2011-12-16 13:10



很多谢你的指引,原来是判断结果正确执行完Run1后没有退出,所以继续执行Run2导致的结果!

TOP

回复 3# x9tiancmd


    很多谢您的提醒,其实我也考虑过你所说的问题,我做这个批处理的作用是,原本我就有一个批处理是所有电脑统一桌面墙纸的,但是有几台机出于特殊原因不用而且又是在同一个组里面,所以在原始的秕处理上加了一个判断了。

TOP

返回列表