转自https://www.xfocus.net/bbs/index.php?act=SE&f=2&t=46712&p=190038。做过修改。
此链接推荐去看一看正文和回复...强淫啊
 
@echo on
 
setlocal
 
rem DPATH   : 指定目录
rem FILETYPE: 指定文件类型
rem SCONTENT: 替换前的字符串
rem DCONTENT: 替换后的字符串
rem TMPFILE : 临时文件
 
set DPATH=c:\temp\test
set FILETYPE=*.txt
set SCONTENT=aaa
set DCONTENT=bbb
set TMPFILE=%random%.tmp
 
for /r %DPATH% %%i in ( %FILETYPE% ) do (
 
    if exist %TMPFILE% ( del /f/q %TMPFILE% )
 
    for /f "tokens=*" %%j in ('type "%%i"') do (
      set TMP=%%j && echo !TMP:%SCONTENT%=%DCONTENT%!>nul 1>>%TMPFILE%
    )
 
    move /y %TMPFILE%  %%i
)
 
endlocal
 
 
把以上内容保存为replace.bat,然后在命令行下执行cmd /v:on /c replace.bat
本例子实现了把c:\test目录(包括子目录)中所有txt文件中的aaa替换成bbb
 
 
set TMP=%%j && echo !TMP:%SCONTENT%=%DCONTENT%!>nul 1>>%TMPFILE%
奇怪的格式...
用到的是环境变量替换  set /? 查看帮助
不过也够怪异的...
实际上应该是
set TMP=%%j && echo !TMP:%SCONTENT%=%DCONTENT%!>>%TMPFILE%

cmd必须以 /v:on参数启动的...
只有注册用户登录后才能发表评论。

posts - 49, comments - 14, trackbacks - 0, articles - 0

Copyright © Raistlin