批处理文件:提示用户输入.txt中的值并运行第二行

时间:2016-12-14 20:08:58

标签: batch-file scripting

我是批处理脚本的新手。我试图要求用户从名为camera.txt的文本文件的第一行输入一个已知变量。

camera.txt包含:

cam52 http://192.168.101.52/reboot.cgi?delay=555

cam53 http://192.168.101.53/reboot.cgi?delay=555

如果用户输入 cam52 ,它将继续以第二行的值启动IE " 文本文件中的第二列"

到目前为止,我有以下内容,但不确定我是否在正确的道路上......

 @echo off

 Title Input Camera and Reboot

  ECHO input camera to restart

 ......?

 FOR /f "tokens=2 delims= " %%b IN (camera.txt) DO ECHO Launching Internet  Explorer with camera URL %%b

 Start "" "%ProgramFiles%\Internet Explorer\iexplore.exe" "%%b"

我该怎么做?

1 个答案:

答案 0 :(得分:1)

让我们从获取用户输入开始。
来自In Windows cmd, how do I prompt for user input and use the result in another command?

set /p id="Enter ID: "

其次,循环浏览文件。

你已经明白了这一点。荣誉。但是,我们需要得到两条线。 tokens=2将获得第二部分(URL)。所以我们会稍微改变一下......

FOR /f "tokens=1,2 delims= " %%a IN (camera.txt) DO 

有关详细信息,请参阅http://ss64.com/nt/for_f.html

第三,比较。

From ss64's if documentation:

IF %ERRORLEVEL% EQU 2 goto sub_problem2

第四,打开页面/浏览器

来自另一个问题:Open a Web Page in a Windows Batch FIle

start "" http://www.stackoverflow.com

<强>摘要

所以,如果我们将所有这些加在一起,我们会得到这样的结果:

@echo off
REM Title Input Camera and Reboot

set /p cam="input camera to restart: " 

FOR /f "tokens=1,2 delims= " %%a IN (camera.txt) DO (
    if %%a EQU %cam% (
        ECHO Launching Internet Explorer with camera URL %%b
        start "" %%b
    )
)