Пакетный файл для добавления строки в несколько файлов .txt в папках и подпапках - PullRequest
0 голосов
/ 31 мая 2019

Пакетный файл для добавления строки в несколько файлов .txt в папках и подпапках.

У меня есть код для работы с конкретным файлом, если я заменю (* .txt) на (specificname.txt)), но он будет работать только в папке, в которой пакетный файл присутствует в

@echo off

set "$New_line=Your text"

for %%a in (*.txt) do (

   echo %$New_line% > "New_%%a"

   type "%%a" >> "New_%%a"

   del "%%a" 2>nul

  ren "New_%%a" "%%a"

)

У меня он работает в папке, в которой присутствует пакетный файл, но требуется расширение для поиска файлов в подпапках

ожидаемый результат добавит строку к файлам .txt в папке и подпапках

1 Ответ

0 голосов
/ 31 мая 2019

В вашем коде есть некоторые причуды (взятые из вашего комментария):

ren не поддерживает пути в части назначения - только filename.ext.

С for /r, %%a дает полное имя файла (диск, путь, имя, расширение), поэтому _new%%a приводит к неправильному FQFN (например, _New_C:\folder\subfolder\file.txt)

Вы можете получить подстроки needes с модификаторами (объяснено в for /?)

Незначительные улучшения:
ставьте кавычки вокруг любого пути или имени файла
переключился на другой синтаксис перенаправления для команды echo, чтобы избежать конечных пробелов.

@echo off
set "$New_line=Your text"
for /R "C:\folder\" %%A in (*.txt) do (
  > "%%~dpANew_%%~nxA" echo %$New_line%
  type "%%A" >> "%%~dpANew_%%~nxA"
  del "%%A" 2>nul
  ren "%%~dpANew_%%~nxA" "%%~nxA"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...