Re lhkyzh:
skip=1是为了略过 一行,这不存在问题。
问题在于你在for语句中使用了else,也就是说,当在for的第一轮循环中,假设%%N被替换为AT11,则在AT10机中运行时,程序流程会在if失败后流向else中去call up2。
另外,for循环应该有两轮,而在第二轮循环中,%%N替换为AT10,在AT10机中则应又流向if句中去call up1,但是你的测试中,显然没有第二轮循环的流向,那是因为你在if/else中的up1/up2中使用exit跳出了cmd环境,因此第二轮循环被忽略。
解决的方案如下(假设up1.bat中未使用exit跳出):
@echo off
set match=
for /f "skip=1" %%N IN (\\user01\up$\name.ini) do (
if "%ComputerName%"=="%%N" (
echo 本台机器特殊!执行其他命令
call \\user01\up$\up1.bat
set match=true
)
)
if not "%match%"=="true" (
@echo 此机执行正常命令
call \\user01\up$\up2.bat
)
Last edited by willsort on 2006-6-6 at 19:41 ]