2011-03-14 53 views
2

我是新来编写批处理文件的。可以告诉我如何打开根文件夹中的所有文件夹并打开其中的所有文件并更改其内容。意思是,如果“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所有文件:

@回响 是否存在d:\ *。*转到过程 回波不存在

:过程 对于%%一个在(d:\ *。*)也呼应%%由底肥一个

,并用 '/ d' 我得到的所有文件夹

用于/ d %%一个在(d:\ )做呼应%%一个

但是我不能够同时使用这些......我希望所有文件夹中

回答

0

阅读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 
) 
) 
+0

有了这个代码,我得到的d所有文件: 关闭@echo 是否存在d:\ *。*转到过程 回声不存在 :过程 用于%%一个在(d:\ *。*)也呼应%%一个 并与由底肥 '/ d' 我得到的所有文件夹 用于/ d %% (D:\ *。*)do echo %% a 但是我无法将它们一起使用...我想要所有文件夹中的所有文件 – Enosh 2011-03-14 10:00:20

+0

您刚才尝试过吗?FOR/R%A IN(* 。*)DO ECHO%A **没有** IF EXIST检查? – 2011-03-14 10:34:45

+0

谢谢你的帮助@echo off SET FILLOC = C:\ Users FOR/r%filLoc %%% x IN(*。*)DO echo %% x – Enosh 2011-03-14 12:54:31

相关问题