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 ]