批处理文件系统在循环后找不到文件
Batch File System cannot find file after Loop
我正在创建一个批处理文件,通过将用户 ID 作为输入和文件 data.csv 第 2 列的计算机名称来打开远程计算机管理控制台。第一次尝试时效果很好。当它回到 :start 标签时。并征求其他意见。它给出了错误。系统找不到文件 ./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
在批处理文件中使用 %~dp0 作为路径的好习惯(而不是像 . 这样的相对路径)这样,如果当前工作文件夹发生变化,文件将始终被找到。
所以改成%~dp0data.csv
: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
应该恢复理智,推送目录然后在下一个循环之前恢复它。
我正在创建一个批处理文件,通过将用户 ID 作为输入和文件 data.csv 第 2 列的计算机名称来打开远程计算机管理控制台。第一次尝试时效果很好。当它回到 :start 标签时。并征求其他意见。它给出了错误。系统找不到文件 ./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
在批处理文件中使用 %~dp0 作为路径的好习惯(而不是像 . 这样的相对路径)这样,如果当前工作文件夹发生变化,文件将始终被找到。
所以改成%~dp0data.csv
: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
应该恢复理智,推送目录然后在下一个循环之前恢复它。