由于自身基础不是很好,导致走了很多弯路;接下来分享一下成功的bat脚本;
发现问题:递归(for /r语句),更改(set语句)
1、写一个简单的递归:打印出目录下所有的.txt文件名字;
@echo off
set /p choice=输入当前文件夹下面目录名:
setlocal enabledelayedexpansion
for /r ./%choice% %%i in (*.txt) do (
set par=%%i
echo !par!
)
pause
2、写一个简单的更改.txt文件中的内容:更改文件124.txt文件中的hate为love;
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (F:\学习\124.txt) do (
set "tmp=%%i"
echo 替换前的值:!tmp!
set "var=!tmp:hate=love!"
echo 替换后的值:!var!
echo !var!>>temp.txt
)
copy temp.txt F:\学习\124.txt
del temp.txt
pause
其中124.txt内容中有hate就好;
F:\学习\124.txt为我的目录;
3、将两个进行合并:将指定目录下的txt文件中的hate改为love
@echo off
set /p choice=输入当前文件夹下面目录名:
setlocal enabledelayedexpansion
for /r ./%choice% %%i in (*.txt) do (
set par=%%i
echo !par!
echo 当前盘符和路径:%~dp0
for /f "tokens=*" %%i in (!par!) do (
set "tmp=%%i"
set "var=!tmp:hate=love!"
echo !var!>>temp.txt
)
copy temp.txt !par!
del temp.txt
)
pause
实测可用;