是否可以使用一堆命令创建批处理文件(commands.bat)
ECHO HELLO
ECHO HOLA
ECHO KONICHIWA
ECHO ANYONGHASEYO
ECHO BONJOUR
,然后在另一个批处理文件CALL commands.bat
内,只在第2行或第4行执行命令而不知道这些行上的内容是什么?
答案 0 :(得分:2)
这就是我在评论中的意思。
<强> master.bat 强>
echo abcd
echo hello
echo notepad
echo public
echo wind
echo balance
<强> command.bat 强>
@echo off
more +3 master.bat > temp.bat & temp.bat
为我打印以下内容。
public
wind
balance
要从第一行开始,请使用+0
。
如果您希望通过命令行发送此号码,则稍微修改一下:
<强> command.bat 强>
@echo off
more +%1 master.bat > temp.bat & temp.bat
您可以使用command.bat 0
或command.bat 3
等命令运行上述内容。
答案 1 :(得分:1)
我曾经知道的一个巧妙的小技巧(当批处理文件流行时回来)
SET JUMPTO=HOLA
goto BRANCH_%JUMPTO%
:BRANCH_HELLO
echo HELLO
GOTO :QUIT
:BRANCH_HOLA
echo HOLA
GOTO :QUIT
:BRANCH_KONICHIWA
echo KONICHIWA
GOTO :QUIT
:BRANCH_ANYONGHASEYO
echo ANYONGHASEYO
GOTO :QUIT
:BRANCH_BONJOUR
echo BONJOUR
GOTO :QUIT
:BRANCH_
echo Illegal branch?!
:QUIT
当您用例如第一行替换第一行时,它变得更加强烈。 SET JUMPTO=%1
一些测试输出:
E:&gt;。\ test.cmd HELLO
E:\>SET JUMPTO=HELLO E:\>goto BRANCH_HELLO E:\>echo HELLO HELLO E:\>GOTO :QUIT
<强> E:&GT; \ TEST.CMD 强>
E:\>SET JUMPTO= E:\>goto BRANCH_ E:\>echo Illegal branch?! Illegal branch?! E:\>
答案 2 :(得分:1)
请将此作为解决方案提供给我。它有效,但我知道有些人不喜欢将FIND命令传递给任何东西= /
REM Contents of COMMANDS.BAT
ECHO HELLO & ::1
ECHO HOLA & ::2
ECHO KONICHIWA & ::3
ECHO ANYONGHASEYO & ::4
ECHO BONJOUR & ::5
REM Command to perform ECHO KONICHIWA out of COMMANDS.BAT
CALL C:\COMMANDS.BAT | FIND "3"
答案 3 :(得分:1)
更好的是,昨天我发现它正在玩弄它:
REM Contents of COMMANDS.BAT
ECHO HELLO & ::1
ECHO HOLA & ::2
ECHO KONICHIWA & ::3
ECHO ANYONGHASEYO & ::4
ECHO BONJOUR & ::5
-
REM Command to perform ECHO KONICHIWA out of COMMANDS.BAT
FINDSTR ::3 COMMANDS.BAT | START /B
这样我就不必将该行输出到另一个bat文件,它只是立即运行命令。
答案 4 :(得分:0)
这类似于Mechaflash's回答,但使用findstr
代替find
。
<强> master.bat 强>
echo abcd &rem line1
echo hello &rem line2
echo notepad &rem line3
echo public &rem line4
echo wind &rem line5
echo balance &rem line5
<强> command.bat 强>
@echo off
findstr line%1 master.bat > temp.bat & temp.bat