Board logo

标题: if 怎么根据机名来判断执行文件 [打印本页]

作者: jiulong     时间: 2008-4-9 02:45    标题: if 怎么根据机名来判断执行文件
if.bat @echo off ::此脚本根据机名来执行文件,此为测试版,正式使用修改echo行命令 if exist run.vbs del run.vbs for /f "tokens=1" %%i in (a.txt) do if %computername% equ %%i (goto a)else cls exit :a echo msgbox "计算机名:%computername%",48,"警告">run.vbs run.vbs exit :b echo msgbox "列表没有此计算机名",48,"警告">run.vbs run.vbs 辅助工具.bat ::此脚本创建机器名列表,所以运行上面批处理前先确定有此列表文件 for /l %%i in (1,1,9) do echo 00%%i>>a.txt for /l %%i in (10,1,99) do echo 0%%i>>a.txt for /l %%i in (100,1,250) do echo %%i>>a.txt 说明:脚本基本思路已经出来,问题是能否精简代码甚至提高脚本执行的效率 比如说:辅助工具.bat 内容改成如果数据为1位(1-9)就自动加00,如果数据为2位(10-99)就自动加一个0

作者: abcd     时间: 2008-4-9 03:54
@echo off
::此脚本根据机名来执行文件,此为测试版,正式使用修改echo行命令
for /f "tokens=1" %%i in (a.txt) do (
    if %computername% equ %%i (goto a) else cls
)
exit
:a
mshta vbscript:msgbox("计算机名:%computername%",48,"警告")(window.close)
exit
:b
mshta vbscript:msgbox("列表没有此计算机名",48,"警告")(window.close)
for /l %%i in (1,1,250) do set num=00%%i&&call,echo %%num:~-3%%>>a.txt
[ Last edited by abcd on 2008-4-9 at 03:56 AM ]

作者: jiulong     时间: 2008-4-10 07:19
第二条命令非常受用,我怎么就没想到~-3来提取最后三个字符呢。 第一条命令就可惜了。 例:100台机,1-33号机执行一条命令,34-66执行另一条命令,67-100执行与之前面不同的命令,且最好能抛弃过渡文件。 对FOR命令我有个疑问,就是循环处理的效率好像很低。