Пакет Windows Как удалить определенные слова из текстового файла - PullRequest
0 голосов
/ 18 февраля 2019

Я не могу понять, как удалить фрагмент текста в строке.

У меня есть пакетный файл, который создает список файлов, представляющих интерес для меня в выбранной папке.

dir D:\pool\template_test>U:\Desktop\list.txt
findstr "Work_T" U:\Desktop\list.txt > U:\Desktop\tamplates.txt

Вывод:

2013-03-13  17:24               622 Work_T_tamplate1.fdf

В конечном файле, как вы видите, представлены дата, время, размер, но мне нужно только имя.Как я могу это сделать?

Я пытался использовать пример из другого поста, но он не работает:

for /f "tokens=3" %%A in (U:\Desktop\tamplates.txt) do findstr /C".dot" /C".pdf" /C".fdf" %%A

окончательный файл после использования предложенного кода

1 Ответ

0 голосов
/ 18 февраля 2019

Таким образом, вы уже получили ответ в комментариях Стефан

Они будут включать в себя поиск для вас, следующее возвращает только имя файла:

cd /d "D:\pool\template"    
(@for /f %%i in ('dir /b "Work_T*.dot" "Work_T*.pdf" "Work_T*.fdf" ') do (
    @echo "%%i"
  )
)>"U:\Desktop\tamplates.txt"

Выоднако может также потребоваться полный путь, поэтому он будет включать полный путь к файлу:

cd /d "D:\pool\template"    
(@for /f %%i in ('dir /b "Work_T*.dot" "Work_T*.pdf" "Work_T*.fdf" ') do (
    @echo "%%~fi"
  )
)>"U:\Desktop\tamplates.txt"

добавьте /s для повторения через подпапки, если необходимо.

Редактировать

для путей UNC:

(@for /f %i in ('dir /b /a-d "\\tuesrna02\pool\template" ^| findstr /i "Work_T"') do (
    @echo %%i
  )
)>"U:\Desktop\tamplates.txt"
...