Как открыть множество папок и заменить все содержимое файлов с помощью командных файлов - PullRequest
2 голосов
/ 14 марта 2011

Я новичок в написании командных файлов. Может кто-нибудь сказать мне, как открыть все папки из корневой папки, открыть все файлы в ней и изменить их содержимое.Означает, что если «C: \ abc \ xyz» теперь все файлы в папке «abc» должны изменить свое содержимое, а затем все файлы в папке «xyz».Теперь у меня есть код для изменения содержимого файла.Пожалуйста, скажите мне, как попасть в папки и подпапки и изменить все файлы ...

КОД ДЛЯ ЗАМЕНЫ СТРОКИ В ФАЙЛАХ

@echo off
setlocal enabledelayedexpansion
set INTEXTFILE=b.txt
set OUTTEXTFILE=test_out.txt
set SEARCHTEXT=path
set REPLACETEXT=hello
set OUTPUTLINE=

for /f "tokens=1,* delims=¶" %%A in ( '"type %INTEXTFILE%"') do (
SET string=%%A
SET modified=!string:%SEARCHTEXT%=%REPLACETEXT%!

echo !modified! >> %OUTTEXTFILE%
)
del %INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%   

С помощью следующего кода я получаювсе файлы в D:

@ echo off IF EXIST D: \ *. * goto process echo не существует

: процесс для %% a in (D: \ *. *) doecho %% a

И с помощью '/ d' я получаю все папки

для / d %% a in (D: \ . ) и выполняю echo%% a

Однако я не могу использовать их вместе ... Я хочу, чтобы все файлы были из всех папок

1 Ответ

0 голосов
/ 14 марта 2011

Прочитайте HELP FOR, затем попробуйте FOR /R %A IN (*.TXT) DO ECHO %A

затем измените ваш пакетный файл соответственно, добавив что-то вроде этого

FOR /R %%A IN (*.TXT) DO (
  ECHO %%A
  FOR /F %%B in (%%A) DO (
     ECHO %%B
  )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...