2011-09-15 9 views
3

を実行するための行を呼び出すために、別のバッチスクリプトを呼び出すには、その後、別のバッチの中に、コマンド(commands.bat)バッチスクリプト - 特定のコマンドに

ECHO HELLO 
ECHO HOLA 
ECHO KONICHIWA 
ECHO ANYONGHASEYO 
ECHO BONJOUR 

の束とバッチファイルを作成することが可能ですファイル、CALL commands.batとその行に何がわからずに行2または行4でコマンドを実行しますか?

+0

はい、特定の引数に依存して 'echo Hola'と' echo Bonjour'を条件付きで行い、 'commands.bat'を呼び出してその引数を送ります。 – adarshr

+0

http://commandwindows.com/batchfiles-branching.htm – sehe

+0

私の質問を編集しました。重要な細部を残しておいてください:文字列に含まれているものではなく、行番号で呼び出します。 – Mechaflash

答えて

2

ここにwh私は私のコメントで意味した。

@echo off 

more +3 master.bat > temp.bat & temp.bat 

master.bat

echo abcd 
echo hello 
echo notepad 
echo public 
echo wind 
echo balance 

command.batは私のために以下を印刷します。

public 
wind 
balance 

最初の行から開始するには、+0を使用してください。

あなたは、この数は、コマンドラインを介して送信されるようにしたい場合は、ここで少し変更したバージョンです:

command.bat

@echo off 

more +%1 master.bat > temp.bat & temp.bat 

は、あなたはこのようなcommand.bat 0かなどのコマンドで上記を実行することができますcommand.bat 3

+1

n-through-EOFではなくn番目の行だけを実行したい場合は、http://stackoverflow.com/questions/6409869/echo-the-nth-line-from-a-を参照してください。 text-file-n-a-command-line-argumentであり、あなたが望むものを得るために私の答えと組み合わせてください。 – adarshr

+0

あなたのリンク先のJebの回答を使用します。答えを設定する。 – Mechaflash

1

私は(バッチファイルが流行していた時に戻って)あなたは、例えばとの最初の行を交換するときには、より多くのintestingになっ

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の

E:\>SET JUMPTO=HELLO 

E:\>goto BRANCH_HELLO 

E:\>echo HELLO 
HELLO 

E:\>GOTO :QUIT 

Eハロー:>は\

E:\>SET JUMPTO= 

E:\>goto BRANCH_ 

E:\>echo Illegal branch?! 
Illegal branch?! 
E:\> 
をTEST.CMD
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 
CALL C:\COMMANDS.BAT | FIND "3" 
+0

素晴らしいアイデアです!私はあなたのやり方に似た別の答えを加えます。 – adarshr

0

これはMechaflash's答えに似ているが、findstrの代わりfindを利用したものに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 
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 

私は出力に別のバットにラインを持っていないその方法ファイルを作成すると、すぐにコマンドが実行されます。

関連する問題