BAT里批量修改文本文件里的内容!
你好我现在还是有点不明白 比如我的这些文件 在D盘的一个国语的文件包里 这样的批量能解觉吗 我的意思是 我只需要替换一个文件的这样的过程 就可以 这样你看看 打开D盘国语文件夹 找到111.txt文本文件 找到文件里数字1234 修改成 4321 保存 这样就可以了 然后我回自己按这样的步骤 用表格文件打出所以的这些文件 然后批量修改 是这样的 请您在费心看一下 展开
1、首先鼠标右键单击电脑桌面,选择新建一个文本文档。
2、然后打开新建文本文档,输入下方的代码:
@echo off
for /f "delims=" %%i in ('dir /s/b *.txt') do (
for /f "delims=" %%a in ('type "%%~fi"') do (
set "foo=%%a"
call,set foo=%%foo:1234=4311%%
call,echo/%%foo%%>>"%%~fi._"
)
move "%%~fi._" "%%~fi"
)
exit
3、然后点击选择编辑页面左上角文件中的“另存为”。
4、然后在弹出来的窗口中,将文件名的后缀更改成“.bat” ,选择保存的目录,回车确定。
5、然后去到保存的目录,找到下图中的程序,双击它就完成了。
操作设备:戴尔电脑
操作系统:win10
第一步、首先鼠标右键单击电脑桌面,选择新建一个文本文档,如下图所示。
第二步、然后打开新建文本文档,输入下方的代码:@echo off.for /f "delims=" %%i in ('dir /s/b *.txt') do (for /f "delims=" %%a in ('type "%%~fi"') do (set "foo=%%a".call,set foo=%%foo:1234=4311%%call,echo/%%foo%%>>"%%~fi._")move "%%~fi._" "%%~fi")exit
第三步、然后点击选择编辑页面左上角文件中的“另存为”,如下图所示。
第四步、然后在弹出来的窗口中,将文件名的后缀更改成“.bat” ,选择保存的目录,回车确定,如下图所示。
第五步、然后去到保存的目录,找到下图中的程序,双击它就完成了,如下图所示。
for /f "delims=" %%i in ('dir /s/b *.txt') do (
for /f "delims=" %%a in ('type "%%~fi"') do (
set "foo=%%a"
call,set foo=%%foo:1234=4311%%
call,echo/%%foo%%>>"%%~fi._"
)
move "%%~fi._" "%%~fi"
)
exit
以上为批处理代码,保存为bat文件,双击执行,使用前备份文件。另给出VBS方案:
Set WshShell = CreateObject("Wscript.Shell")
WshShell.Run "cmd /c dir /s/b *.txt > list.txt",vbHide
Wscript.Sleep 1000
sFile = "list.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set oFile = objFSO.OpenTextFile(sFile,1)
Do While Not oFile.AtEndOfStream
strLine = oFile.ReadLine
If Len(strLine) > 0 Then
Set File = objFSO.OpenTextFile(strLine, 1)
aryLines = File.ReadAll
File.Close
aryLines = Replace(aryLines, "1234", "4311")
Set File = objFSO.OpenTextFile(strLine, 2)
File.Write aryLines
File.Close
End If
Loop
oFile.Close
objFSO.DeleteFile sFile
Set objFSO = Nothing
保存为VBS文件,放到TXT文件目录,双击执行。
----------------------------------------
两段代码都可以实现批量替换,无论在该文件夹的深度是多少。不用打开TXT直接替换。不懂可以hi我。
逗号不要钱的,看着太累了!
新建一个txt文本,后缀改为bat,里面复制进去下面的代码,把需要替换的文件夹拖进去,按回车:(*.txt是文件后缀可改,set a=!a:1234=4311!复制这一行并修改可以替换多个需要替换的内容)
@echo off
setlocal enabledelayedexpansion
:tou
set /p wjj=拖入文件夹:
for /r %wjj% %%i in (*.txt) do (
for /f "delims= usebackq" %%j in ("%%i") do (
set a=%%j
set a=!a:1234=4311!
echo !a!
)>>临时文件.txt
move 临时文件.txt "%%i"
)
goto:tou