循环后批处理文件系统无法找到文件

时间:2016-12-26 10:04:27

标签: batch-file label goto

我正在创建一个批处理文件来打开远程计算机管理控制台,方法是将用户ID作为输入,并从文件data.csv中的第二列获取计算机名称。它在第一次尝试时工作正常。当它返回到:开始标签。并要求其他输入。它给出了错误。系统找不到文件./data.csv 我的代码是

 :start
    set /p Input="Enter User-ID:" 

    for /f "usebackq tokens=1-4 delims=," %%a in (".\data.csv") do (
       if %input% ==%%a ("cmd /c Start /B /wait compmgmt.msc –a /computer=%%b")

    )
    cls
    GOTO start

2 个答案:

答案 0 :(得分:0)

将%~dp0用于批处理文件中的路径(而不是像。这样的相对路径)的好习惯,如果当前工作文件夹更改文件将始终定位。

所以改为%~dp0data.csv

答案 1 :(得分:0)

:start
set /p Input="Enter User-ID:" 
PUSHD    
for /f "usebackq tokens=1-4 delims=," %%a in (".\data.csv") do (
 if %input% ==%%a ("cmd /c Start /B /wait compmgmt.msc –a /computer=%%b")

)
POPD
cls
GOTO start

应恢复理智,推送目录,然后在下一个周期之前恢复它。