web-dev-qa-db-ja.com

.txtファイルからコマンドを実行するためのバッチコマンド/スクリプト?

指定された.txtファイルからコマンドを実行できるコマンドまたはスクリプトを見つけようとしています。たとえば、.txtファイルをバッチファイルとして扱いますが、必ずしも.batに名前を変更する必要はありません。

誰か助けてもらえますか?

例えば:

cmd "filename.txt"
do cmd

これにより、filename.txtが.batファイルとして実行され、その中でコマンドが実行されます。

3
ZeekPlayz

.txtファイルからコマンドを実行できるコマンドまたはスクリプトを見つけようとしています

最も単純なソリューションが常に最適です。

次のコマンドを使用します。

cmd <command.txt

または:

タイプcommand.txt | cmd

ソースStackOverflow回答 cmdのtxtファイルでコマンドを直接実行する方法MC ND で、コメントです。

注意:

gotosetlocalなど、このファイルでは機能しないコマンドがいくつかあります。ただし、複数行の入れ子になったifおよびforコマンドは、置き換え可能なパラメーターが1%しか使用しない限り機能します(コマンドラインの場合と同様)。

ソースStackOverflow回答 非bat拡張ファイルをバッチファイルとして実行Aacini

このアプローチの詳細については、StackOverflowの回答 *。bat拡張子を使用せずにバッチスクリプトを実行する方法 、および Aacini を参照してください。この回答には、gotoおよびcallも機能させることができるコードへのリンクも含まれています。


参考文献

5
DavidPostill

テキストファイルをバッチスクリプトとして実行する

はい、これは、実行する必要のあるコマンドを含むテキストファイルを、バッチスクリプトに渡される最初の バッチ引数 として参照することで可能になります。

引数の値を変数として設定し、 type を使用して、テキストファイルの内容で一時的なバッチファイルを作成し、そのファイルを cmd で実行して、適切に処理できます。 。


バッチスクリプトロジック

@ECHO ON

SET cmdtxt=%~1
SET cName=%~N1

if exist "%tmp%\%cName%.cmd" del /q /f "%tmp%\%cName%.cmd"
if not exist "%tmp%\%cName%.cmd" type "%cmdtxt%" >> "%tmp%\%cName%.cmd"
cmd /k "%tmp%\%cName%.cmd"

pause
exit

注:cmd/c を使用すると、コマンドウィンドウを閉じます実行。


テキストファイル

ECHO Line 1
dir *.txt

注:これは、各行に含まれる.batまたは.cmdのないテキストファイルです実行される有効なバッチコマンド。


どちらかを使用してこれを実行します。 。 。

1.ドラッグアンドドロップ

enter image description hereenter image description here


2.コマンドライン

C:\Users\User\Desktop\RunMe\RunTextCommands.cmd "C:\Users\User\Desktop\RunMe\cmd.txt"

@ECHO OFF結果

enter image description here


その他のリソース

  • コマンドライン引数(パラメーター)

    バッチスクリプト内の%*はすべての引数(例:%1%2%3%4%5 ...%255)を参照します。番号で参照できるのは引数%1から%9までです。

  • If

  • タイプ
  • Cmd

  • FOR /?

    さらに、FOR変数参照の置換が強化されました。これで、次のオプションの構文を使用できます。

    %~nI        - expands %I to a file name only
    
7
Pimp Juice IT

テキストファイルから個々の行をバッチコマンドとして実行する

はい、これは、実行する必要のあるコマンドを含むテキストファイルを、バッチスクリプトに渡される最初の バッチ引数 として参照することで可能になります。

次に、ファイルを for/f ループで実行し、各行の内容を個別に繰り返し、各[コマンド]値を cmd /c に渡して実行しますそれに応じて。


バッチスクリプトロジック

@ECHO ON

SET cmdtxt=%~1

FOR /F "USEBACKQ TOKENS=*" %%A IN ("%cmdtxt%") do (
    cmd /c "%%~A"
    )
::PAUSE
EXIT 

テキストファイル

ECHO Line 1
dir *.txt

注:これは、各行に含まれる.batまたは.cmdのないテキストファイルです実行される有効なバッチコマンド。


どちらかを使用してこれを実行します。 。 。

1.ドラッグアンドドロップ

enter image description hereenter image description here


2.コマンドライン

C:\Users\User\Desktop\RunMe\RunTextCommands.cmd "C:\Users\User\Desktop\RunMe\cmd.txt"

@ECHO OFF結果

enter image description here


さらなるリソース

3
Pimp Juice IT