可以创建一个批处理文件,其中包含一系列命令吗 (commands.bat)?
ECHO HELLO
ECHO HOLA
ECHO KONICHIWA
ECHO ANYONGHASEYO
ECHO BONJOUR
在一个批处理文件中,使用CALL commands.bat
命令,而不知道第2行或第4行的内容,如何只执行第2行或第4行的命令?
可以创建一个批处理文件,其中包含一系列命令吗 (commands.bat)?
ECHO HELLO
ECHO HOLA
ECHO KONICHIWA
ECHO ANYONGHASEYO
ECHO BONJOUR
在一个批处理文件中,使用CALL commands.bat
命令,而不知道第2行或第4行的内容,如何只执行第2行或第4行的命令?
以下是我在评论中的意思。
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
等命令来运行上述内容。
我曾经知道的一个小技巧(当批处理文件很流行的时候)
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:>.\test.cmd HELLO
E:\>SET JUMPTO=HELLO E:\>goto BRANCH_HELLO E:\>echo HELLO HELLO E:\>GOTO :QUIT
E:>.\test.cmd
E:\>SET JUMPTO= E:\>goto BRANCH_ E:\>echo Illegal branch?! Illegal branch?! E:\>
对此解决方案给我你的意见。它有效果,但是我知道有些人不喜欢将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"
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
这样我就不必将该行输出到另一个批处理文件中,它会立即运行命令。
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
echo Hola
和echo Bonjour
有条件地执行,取决于特定的参数,并在调用commands.bat
时传入该参数。 - adarshrcommands.bat
文件,其中只包含echo
语句列表。根据您可能收到的行号(或范围),将从该行号到文件末尾的内容复制到单独的文件temp.bat
中并执行它。 - adarshr