Wie kann ich mit Hilfe der Windows-Befehlszeile Unterzeichenfolgen extrahieren?

6584
David

Angenommen, ich habe eine Datei namens testfile.txt, die eine Liste von Dateinamen des folgenden Formats enthält:

A svn\New Text Document.txt M svn\Table_tblVersion.xml 

Gibt es einen Befehl, in den ich testfile.txt so weiterleiten kann, dass die ersten 8 Zeichen jeder Zeile entfernt werden. Die Ausgabe, die ich möchte, ist einfach:

svn\New Text Document.txt svn\Table_tblVersion.txt 
2
Ich denke, dass Sie die Antwort in [diesem Thema] finden können (http://stackoverflow.com/questions/60034/how-can-you-find-and-replace-text-in-a-file- using-the- Windows-Befehlszeile-Enviro). Jack Shainsky vor 12 Jahren 0
Anscheinend ist die Windows-Befehlszeile für diese Aufgabe nicht gut geeignet. Zum Glück habe ich die Möglichkeit zu tun, was ich in vb will, also werde ich das tun, denke ich! David vor 12 Jahren 0

3 Antworten auf die Frage

2
treehead

Sie müssen den forBefehl für den Dateiinhalt ausführen :

for /f "tokens=1*" %a in (testfile.txt) do echo %b 

Es ist bei weitem nicht so vielseitig wie cutin GnuWin-Kernelementen, aber es funktioniert.

Variablennamen passen nicht zusammen, ansonsten funktioniert sie gut Dave Cousineau vor 8 Jahren 0
1
Siim K

Ich empfehle Powershell wirklich für solche Aufgaben. Es ist in Windows 7 integriert und kann für ältere Windows-Versionen heruntergeladen werden.

Der Befehl lautet:

get-content testfile.txt | ForEach-Object {$_.Substring(8)} | write-host 
0
RedGrittyBrick

Schritt 1. Installieren Sie Cygwin, UnxUtils oder GnuWin32

Schritt 2. cut -c9-99 testfile.txt

Wenn Sie müssen ein Rohr verwenden:cat testfile.txt | cut -c9-99