Obwohl Sie nicht, uns Ihre eigenen Anstrengungen auf das Problem bei der Hand zeigte, habe ich beschlossen, einen Code zu liefern, weil die Aufgabe nicht zu mir, dass besonders trivial scheint ...
Die Skripte unter Entfernen der erstes Wort aus der ersten Zeile.
Der folgende liest die angegebene Textdatei mit einer for /F
Schleife und trennt das erste Wort in der ersten Zeile durch eine andere verschachtelte for /F
Schleife; die übrigen Leitungen sind nicht-editierten zurückgegeben:
@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "FLAG=" & rem // (this marks the first line)
for /F "delims=" %%L in ('findstr /N /R "^" "%~1"') do (
set "LINE=%%L"
rem // (toggle delayed expansion to not lose `!`)
setlocal EnableDelayedExpansion
if defined FLAG (
rem // (this is executed for all but the first lines)
echo(!LINE:*:=!
) else (
rem // (this is executed for the first line only)
for /F "tokens=1,*" %%E in ("!LINE!") do (
endlocal
rem // (return line with first word removed)
echo(%%F
setlocal EnableDelayedExpansion
)
)
endlocal
rem // (set this after the first loop iteration)
set "FLAG=#"
)
endlocal
exit /B
Dieses liest über Redirection gegebenen Textdatei, abspaltet wieder das erste Wort der ersten Zeile durch eine for /F
Schleife und gibt die restlichen Zeilen durch eine findstr
Befehlszeile:
@echo off
setlocal EnableExtensions DisableDelayedExpansion
< "%~1" (
rem // (capture first line here)
set /P "LINE="
rem // (toggle delayed expansion to not lose `!`)
setlocal EnableDelayedExpansion
rem // (this is executed for the first line only)
for /F "tokens=1,*" %%I in ('echo^(!LINE!^| findstr /N /R "^^"') do (
endlocal
rem // (return line with first word removed)
echo(%%J
setlocal EnableDelayedExpansion
)
endlocal
rem // (this is executed for all but the first lines)
findstr /R "^"
)
endlocal
exit /B
Beide Skripts erwarten, dass die Eingabetextdatei als Befehlszeilenargument bereitgestellt wird. entweder Skript Gesetzt wird gespeichert als remove-first-word.bat
und die Textdatei sample.txt
genannt wird, in der Befehlszeile verwendet werden soll, wie folgt:
remove-first-word.bat "sample.txt"
oder:
remove-first-word.bat "\path\to\sample.txt"
Um die Ausgabe in einer anderen Datei zu schreiben, sagen return.txt
, anstatt auf die Konsole, die Verwendung Umleitung:
remove-first-word.bat "sample.txt" > "return.txt"
oder:
remove-first-word.bat "\path\to\sample.txt" > "\path\to\return.txt"
Sie müssen Ihre Bemühungen zeigen, wenn Sie Hilfe benötigen! Wir machen deine Arbeit nicht für dich! Bitte lies das Hilfethema: [Wie stelle ich eine gute Frage?] (Http://stackoverflow.com/help/how-to-ask) – aschipfl
@aschipll Ich verstehe, ich habe einen Link in den Post hinzugefügt, aber ich bin immer noch neu zu batch und ich konnte nichts anderes finden, also bitte ich brauche wirklich die Antwort! –
Der verlinkte Post (Unix-bezogen) stimmt nicht mit dem Tag [Tag: Batch-Datei] (Windows-spezifisch) überein! "Neuem etwas" zu sein, rechtfertigt nicht, keine eigenen Bemühungen zu zeigen ... – aschipfl