2016-05-17 12 views
-3

Ich habe eine TXT-Datei, die verschiedene Wörter in verschiedenen Zeilen enthalten kann und ich möchte nur das erste Wort in der ersten Zeile entfernen. (Beispiel: Ich habe 2 Zeilen in meiner Textdatei, die jeweils 2 Wörter enthalten (abc, bcd in der ersten Zeile und cde, def in der zweiten Zeile) und ich möchte die Ausgabe in der ersten Zeile bcd und cde und def in der zweiten Zeile). Ich habe das recherchiert und bin nur dazu gekommen, das erste Wort in allen Zeilen zu entfernen, aber ich brauche nur in der ersten Zeile. Danke im Voraus.Batch-Datei, wie das erste Wort in einer Textdatei und nur in der ersten Zeile entfernen?

Das war die nächste Antwort, die ich herausfinden konnte, aber es entfernt das erste Wort von allen Zeilen und ich brauche nur die erste Zeile. Remove First Word in text stream

+0

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

+0

@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! –

+0

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

Antwort

1

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" 
Verwandte Themen