BAT里批量修改文本文件里的内容!

2024年11月15日 21:50
有5个网友回答
网友(1):

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、然后去到保存的目录,找到下图中的程序,双击它就完成了。

网友(2):

操作设备:戴尔电脑

操作系统: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” ,选择保存的目录,回车确定,如下图所示。

第五步、然后去到保存的目录,找到下图中的程序,双击它就完成了,如下图所示。

网友(3):

@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文件,双击执行,使用前备份文件。另给出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我。

网友(4):

逗号不要钱的,看着太累了!

新建一个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

网友(5):