将变量携带到新的命令提示符窗口中

时间:2014-06-11 20:20:20

标签: batch-file

我想要一个打开的批处理文件:

  1. 一次将list.txt中的所有项目设置为变量v。
  2. 对于list.txt中的每个项目,打开命令提示符并运行starter.bat
  3. 将变量v载入starter.bat
  4. 我的代码

    SETLOCAL EnableDelayedExpansion
    FOR /F "tokens=*" %%v in (C:\users\anhall\desktop\test\list.txt) DO START c:\users\anhall\desktop\test\starter.bat
    ENDLOCAL & SET computer=%v%
    

    这只是一个例子,当我得到所有内容时,我会发现列表中应该有几百个项目。但我可能会将其分解为较小的列表以便于运行。

    list.txt

    NHN-0073
    NHN-0115
    NHN-0846

    这是我在主窗口上最终得到的结果:

    Beginning loop.bat problem.png

    我可以看到它无法正常工作,因为它甚至不会传到ENDLOCAL & SET computer=

    我主要担心的是将变量带入每个新窗口。我知道这是可能的,但我无法让它发挥作用。

    已完成的代码

    我的代码

    SETLOCAL
    FOR /F "tokens=*" %%v in (C:\users\anhall\desktop\test\list.txt) DO START c:\users\anhall\desktop\test\starter.bat %%v
    

    更改为starter.bat

    changed variable to %1
    

1 个答案:

答案 0 :(得分:1)

只需在命令行中传递它:

for /F %%v in (YourFile.txt) do start c:\users\anhall\desktop\test\starter.bat %%v

修改您的starter.bat文件以使用%1从命令行接收变量。

:: Starter.bat - replace echo with your actual command
@echo %1   

(从命令行执行此操作意味着您永远不会更改computer环境变量,因此您可以删除第一个批处理文件末尾的& SET。)