Как я могу извлечь подстроки с помощью командной строки Windows?

6521
David

Например, скажем, у меня есть файл с именем testfile.txt, который содержит список имен файлов следующего формата:

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

Есть ли команда, которую я могу передать testfile.txt так, чтобы первые 8 символов каждой строки были удалены. Я хочу получить следующий вывод:

svn\New Text Document.txt svn\Table_tblVersion.txt 
2
Я думаю, что вы можете найти ответ в [этой теме] (http://stackoverflow.com/questions/60034/how-can-you-find-and-replace-text-in-a-file-using-the- окна-командная строка-ENVIRO). Jack Shainsky 13 лет назад 0
Похоже, что командная строка Windows не очень подходит для этой задачи. К счастью, у меня есть возможность делать то, что я хочу в VB, поэтому я буду делать это вместо этого, я думаю! David 13 лет назад 0

3 ответа на вопрос

2
treehead

Вам нужно выполнить forкоманду для содержимого файла:

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

Он не так универсален, как cutв GnuWin Coreutils, но работает.

имена переменных не совпадают, в противном случае работает хорошо Dave Cousineau 8 лет назад 0
1
Siim K

Я действительно рекомендую Powershell для таких задач. Он интегрирован с Windows 7, и вы можете скачать его для более старых версий Windows.

Команда:

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

Шаг 1. Установите Cygwin, UnxUtils или GnuWin32

Шаг 2. cut -c9-99 testfile.txt

Если вы должны использовать трубу:cat testfile.txt | cut -c9-99