指定された.txtファイルからコマンドを実行できるコマンドまたはスクリプトを見つけようとしています。たとえば、.txtファイルをバッチファイルとして扱いますが、必ずしも.batに名前を変更する必要はありません。
誰か助けてもらえますか?
例えば:
cmd "filename.txt"
do cmd
これにより、filename.txtが.batファイルとして実行され、その中でコマンドが実行されます。
最も単純なソリューションが常に最適です。
次のコマンドを使用します。
cmd <command.txt
または:
タイプcommand.txt | cmd
ソースStackOverflow回答 cmdのtxtファイルでコマンドを直接実行する方法MC ND で、コメントです。
注意:
goto
、setlocal
など、このファイルでは機能しないコマンドがいくつかあります。ただし、複数行の入れ子になったif
およびfor
コマンドは、置き換え可能なパラメーターが1%しか使用しない限り機能します(コマンドラインの場合と同様)。
ソースStackOverflow回答 非bat拡張ファイルをバッチファイルとして実行Aacini
このアプローチの詳細については、StackOverflowの回答 *。bat拡張子を使用せずにバッチスクリプトを実行する方法 、および Aacini を参照してください。この回答には、goto
およびcall
も機能させることができるコードへのリンクも含まれています。
はい、これは、実行する必要のあるコマンドを含むテキストファイルを、バッチスクリプトに渡される最初の バッチ引数 として参照することで可能になります。
引数の値を変数として設定し、 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.ドラッグアンドドロップ
2.コマンドライン
C:\Users\User\Desktop\RunMe\RunTextCommands.cmd "C:\Users\User\Desktop\RunMe\cmd.txt"
@ECHO OFF
結果
バッチスクリプト内の%*はすべての引数(例:%1%2%3%4%5 ...%255)を参照します。番号で参照できるのは引数%1から%9までです。
FOR /?
さらに、FOR変数参照の置換が強化されました。これで、次のオプションの構文を使用できます。
%~nI - expands %I to a file name only
はい、これは、実行する必要のあるコマンドを含むテキストファイルを、バッチスクリプトに渡される最初の バッチ引数 として参照することで可能になります。
次に、ファイルを 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.ドラッグアンドドロップ
2.コマンドライン
C:\Users\User\Desktop\RunMe\RunTextCommands.cmd "C:\Users\User\Desktop\RunMe\cmd.txt"
@ECHO OFF
結果