[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理脚本处理文本替换时,每一行的行首如果有空格字符丢失!!!!

rem 循环取出要处理的文件名
for /f "tokens=*" %%i in ('dir c:\test\t*.txt /b') do (
set "var=%%i"
if not !var!.==. (
rem 单个文件一行行处理,将旧字段替换成新字段
for /f "tokens=*" %%j in (!var!) do (
set "tmp=%%j"
if not !tmp!.==. (
set "tmp=!tmp:%strOld%=%strNew%!"
rem 将处理后的每一行记录追加到temp.txt文件中
echo !tmp!>>temp.txt
)
)
rem 在单个文件的每一行经过替换操作后,将处理后的文本从temp.txt临时文件剪贴到目标处理文件中(剪贴后临时文件会自动删除)
move temp.txt !var!
)
)




所有行首的空格都没有了,
有没有大神指导一下,怎么保留行首的空格呢?????????????????




suo

回复 4# peng10101010


    skip跳过的是find筛选结果的前几行,而不是跳过文件的前几行。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3# WHY


    谢谢,这个问题已经解决

请教一个find 的问题

for /f "skip=2 delims=" %%a om ('find /v "username" "%%i"') do (

set "w1=%%a"
set "w1=!w1:%strold%=%strnew%!"
set "w2"=!w1!"
echo,!w2!>>txt.tmp
)

1、这个语句中的skip是跳过整个文本的前1行,从第2行开始显示吧?
2、实际显示结果是文本中所有带有username的行都被删除成空行了,这是为什么呀?这个find命令

TOP

for /f "delims=" ...

TOP

顶顶,呼唤老手

TOP

返回列表