标题: [文本处理] 批处理如何替换文本中的指定字符串 [打印本页]
作者: 434939575 时间: 2015-12-6 12:52
本帖最后由 pcl_test 于 2015-12-9 11:38 编辑
本人是菜鸟,希望大家多多包涵
先谢谢了。
:求一个批量文本内容替换,而且是批量文件;
例子:
(defun c:tt()
(set (read (vl-list->string '(97)))(getpoint ))
(set (read (vl-list->string '(102)))(getpoint ))
(command "pline" a f "")
)
希望把:
vl-list->string
内容替换为: abs
结果
(defun c:tt()
(set (read (abs '(97)))(getpoint ))
(set (read (abs '(102)))(getpoint ))
(command "pline" a f "")
作者: 434939575 时间: 2015-12-6 13:01
@echo off & setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
set var=%%i
set var=!var:体会=感受!
echo !var!>>b.txt
)
pause
这里有个不知道怎么修改
作者: aa77dd@163.com 时间: 2015-12-6 13:03
本帖最后由 aa77dd@163.com 于 2015-12-6 13:05 编辑
这么简单的替换, 在 编辑器 中直接就行了
Notepad++ 编辑器
按下 Ctrl+Shift+F
指定 要查找的内容, 要替换成的内容, 批量文件所在的目录, 文件的类型, ...
范不着专门写代码, 效率还很高
作者: WHY 时间: 2015-12-6 13:34
拿去花吧~- @echo off
- set "待修改的文本文件路径=D:\test\"
- set "修改前的字符串=vl-list->string"
- set "修改后的字符串=abc"
-
- cd /d "%待修改的文本文件路径%"
- for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
- (for /f "delims=" %%j in ('findstr /n .* "%%i"') do (
- set "s=%%j"
- setlocal enabledelayedexpansion
- set "s=!s:%修改前的字符串%=%修改后的字符串%!"
- set "s=!s:*:=!"
- echo;!s!
- endlocal
- ))>xx.tmp
- move xx.tmp "%%i"
- )
- pause
复制代码
作者: 434939575 时间: 2015-12-6 13:41
回复 3# aa77dd@163.com
感谢指点,还在摸索中...
作者: 434939575 时间: 2015-12-6 13:45
回复 4# WHY
这位兄弟太帅了。感谢!
作者: 434939575 时间: 2015-12-9 11:27 标题: 批处理如何替换文本中的指定字符串
本帖最后由 pcl_test 于 2015-12-9 11:39 编辑
回复 4# WHY
@echo off
set "bd=%cd%"
set "修改前的字符串=300-hx-abc"
set "修改后的字符串=123456"
cd /d "%待修改的文本文件路径%"
for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
(for /f "delims=" %%j in ('findstr /n .* "%%i"') do (
set "s=%%j"
setlocal enabledelayedexpansion
set "s=!s:%修改前的字符串%=%修改后的字符串%!"
set "s=!s:*:=!"
echo;!s!
endlocal
))>xx.tmp
move xx.tmp "%%i"
)
pause
;;////////////现在还有点点问题就是不能按一句代码识别,假设300-hx-abc 置换为123456
, 但是300-hx-abc-50 这句有部分相同的也变化了123456-50 ,
我的意思取整个词完全相同。300-hx-abc-50 不变,以空格为界 。
这个不知道能达到不。
作者: 434939575 时间: 2015-12-9 12:19
回复 3# aa77dd@163.com
感谢这位朋友的指点,全词匹配能解决我的问题。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |