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

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.


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.