Jak mogę wyodrębnić ciągi podrzędne przy użyciu wiersza polecenia systemu Windows?

2

Na przykład powiedzmy, że mam plik o nazwie testfile.txt, który zawiera listę nazw plików w następującym formacie:

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

Czy istnieje polecenie, które mogę przetworzyć testfile.txt w taki sposób, że pierwsze 8 znaków każdej linii zostanie usunięte. Wyjście, którego chcę, to po prostu:

svn\New Text Document.txt
svn\Table_tblVersion.txt
David
źródło
Myślę, że możesz znaleźć odpowiedź w ten temat .
Jack Shainsky
Wygląda na to, że wiersz polecenia systemu Windows nie nadaje się do tego zadania. Na szczęście mam możliwość robienia tego, co chcę w vb, więc zamiast tego będę robił to!
David

Odpowiedzi:

2

Musisz uruchomić for polecenie przeciwko zawartości pliku:

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

Nie jest tak wszechstronny jak cut w GnuWin coreutils , ale to działa.

treehead
źródło
nazwy zmiennych nie pasują, w przeciwnym razie działa dobrze
Dave Cousineau
1

Naprawdę polecam Powershell dla takich zadań. Jest zintegrowany z systemem Windows 7 i możesz go pobrać dla starszych wersji systemu Windows.

Polecenie to:

get-content testfile.txt | ForEach-Object {$_.Substring(8)} | write-host
Siim K
źródło