标题: 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命令我有个疑问,就是循环处理的效率好像很低。