使用用户输入将命令发送到另一个批处理

时间:2015-08-25 19:36:41

标签: windows batch-file cmd

我有一个批处理,它的作用是在某个特定文件夹中列出一些文件,然后列出文件,它等待用户输入。我的问题是我喜欢在不修改原始批次的情况下自动化此过程,换句话说,将命令发送到正在等待使用具有分钟循环的另一批次的批处理。在搜索其他一些主题时,我发现有些人会使用" pipe"发送命令(例如:echo STOP | test.bat)但它没有工作,因为我的批处理正在等待用户输入。在批处理等待用户输入的时间内,您是否有一些ideia来发送命令?

Example:

Files stopped in download folder:

test.txt

COMMAND:

1 个答案:

答案 0 :(得分:0)

将命令保存到INPUT.TXT中,然后将其重定向到批处理,如下所示:

    type INPUT.TXT | mybatch.bat
or
    mybatch.bat < INPUT.TXT 
Here is the working example:
    :: TEST.BAT
    CHOICE /C:YN /M "Do you have another CD? Y N"
    @if %errorlevel% == 2 ECHO pressed N
    @if %errorlevel% == 1 ECHO pressed Y

    CHOICE /C:YN /M "Do you have another CD? Y N"
    @if %errorlevel% == 2 ECHO pressed N
    @if %errorlevel% == 1 ECHO pressed Y


    :: INPUT.TXT
    Y
    N


    C:\temp>type INPUT.TXT | TEST.BAT

    C:\temp>CHOICE /C:YN /M "Do you have another CD? Y N"
    Do you have another CD? Y N [Y,N]?Y
    pressed Y

    C:\temp>CHOICE /C:YN /M "Do you have another CD? Y N"
    Do you have another CD? Y N [Y,N]?N
    pressed N

    C:\temp>