Wie analysiert man jede Zeile einer Textdatei als Argument für die Eingabeaufforderung in Windows?

Wie analysiert man jede Zeile einer Textdatei als Argument für die Eingabeaufforderung in Windows?

Ich möchte ein Skript für die Windows-Eingabeaufforderung schreiben, das eine .txt (Dateiname) als Argument verwendet, die Datei zeilenweise liest und jede Zeile an einen Befehl übergibt. Wenn mein Skript FILE.txtso aussieht:

LINE1
LINE2
LINE3
.
.
.

Es läuft:

command_name argument --option LINE1, Dann

command_name argument --option LINE2, nach erfolgreicher Ausführung des ersten Befehls. UndFühren Sie den gleichen Befehl weiterhin mit unterschiedlichen Argumenten aus.Zeile für Zeile ausgewählt aus FILE.txt.

DerDie Linux/UNIX-Version dessen, was ich erreichen möchte, sieht folgendermaßen aus:

cat FILE.txt | xargs -L 1 echo --option | xargs -L 50 command_name argument

Antwort1

MitPower Shell:

foreach($line in GC PathFolder\File.txt) {Write-Host command_name argument --option $Line}

MitBefehlszeile: VerwendenFOR /f

For /f "delims=" %a in ('Type "File.txt"') do (echo command_name argument --option %a)

Mit einemBatch-Datei:

@echo off
@For /f "delims=" %%a in ('Type "File.txt"') do ( echo command_name argument --option %%a)
pause

Oder sieheEine Datei zeilenweise lesen und in einer variablen Batchdatei speichern

Sie können so etwas tun:

@echo off
Color 0B & Title Read and parse each line of a text file as an argument to command prompt
set "File2Read=file.txt"
If Not Exist "%File2Read%" (Goto :Error)
rem This will read a file into an array of variables and populate it 
setlocal EnableExtensions EnableDelayedExpansion
@For /f "delims=" %%a in ('Type "%File2Read%"') do (
    set /a count+=1
    set "Line[!count!]=%%a"
)
REM Display array elements
@For /L %%i in (1,1,%Count%) do (
    echo "Var%%i" is assigned to ==^> "!Line[%%i]!"
    echo command_name argument --option !Line[%%i]!
)
pause>nul
Exit
::-------------------------------------------
:Error
cls & Color 4C
echo(
echo   The file "%File2Read%" dos not exist !
Pause>nul
exit /b
::-------------------------------------------

verwandte Informationen