是否有可能產生具有一串命令(commands.bat)批處理腳本 - CALL另一批腳本調用線以執行特定命令
ECHO HELLO
ECHO HOLA
ECHO KONICHIWA
ECHO ANYONGHASEYO
ECHO BONJOUR
一個批處理文件,然後內的不同批次文件,CALL commands.bat
,只能執行第2行或第4行的命令,而不知道這些行上有什麼內容?
是否有可能產生具有一串命令(commands.bat)批處理腳本 - CALL另一批腳本調用線以執行特定命令
ECHO HELLO
ECHO HOLA
ECHO KONICHIWA
ECHO ANYONGHASEYO
ECHO BONJOUR
一個批處理文件,然後內的不同批次文件,CALL commands.bat
,只能執行第2行或第4行的命令,而不知道這些行上有什麼內容?
這裏是wh在我的意思是在我的意見。
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
。
如果你只想執行第n行而不是n-through-EOF,你可能想看看http://stackoverflow.com/questions/6409869/echo-the-nth-line-from-a- text-file-where-n-is-a-command-line-argument並將其與我的答案相結合以獲得你想要的。 – adarshr
我要從你的鏈接帖子中使用傑布的回答。設置答案。 – Mechaflash
我以前知道(回來時,批處理文件中風靡一時)
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
它變得更加intesting當你更換例如第一行一個整潔的小竅門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"
這是一個好主意!我會添加另一個類似於你所做的答案。 – adarshr
這類似於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
命令。蝙蝠
@echo off
findstr line%1 master.bat > temp.bat & temp.bat
更重要的是,我發現這個昨天玩弄它:
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
這樣我就不必輸出線到另一個蝙蝠文件,它只是立即運行命令。
是的,使'echo Hola'和'echo Bonjour'有條件的,依賴於某個參數,並在調用'commands.bat'時,發送該參數。 – adarshr
http://commandwindows.com/batchfiles-branching.htm – sehe
編輯我的問題。遺漏了一個重要的細節:通過行號呼叫它們,而不是通過它們的字符串包含 – Mechaflash