批处理for命令文本替换,被替换内容中有等号的问题

作者&投稿:度韩 (若有异议请与网页底部的电邮联系)
批处理文件替换含等号的字符串~

如果按标题所设的普通情况用批处理来做是很麻烦的,最好还有别的条件,我找个简单的情况举例 :需要替换处是一整行,比如将a.txt中 abc=123 所在行替成 abc=456 输出到b.txt (如果不是这样再补充说明)
@echo off
for /f "delims=:" %%a in ('type a.txt^|findstr /n "abc=123"')do set #%%a=y
(for /f "tokens=1* delims=:" %%a in ('type a.txt^|findstr /n .*')do (
if defined #%%a (echo abc=456)else echo.%%b
))>b.txt
pause

@echo off::设置备份路径set BakDir=D:\bin\bakup::设置配置路径set CfgDir=D:\bin\configfor /f "delims=" %%a in ('findstr /c:"TerminalID=" "%BakDir%\config.ini"') do set Bak=%%afor /f "delims=" %%a in ('findstr /c:"TerminalID=" "%CfgDir%\config.ini"') do set Cfg=%%a(for /f "delims=" %%b in ('type "%CfgDir%\config.ini"') do ( if "%%b"=="%Cfg%" ( echo %Bak% ) else ( echo %%b )))>"%CfgDir%\New_config.ini"move /y "%CfgDir%\New_config.ini" "%CfgDir%\config.ini" >nulpause

很赞同一楼观点,看来楼主也是会批处理的,我写一个不为解答具体问题,仅与楼主及各位交流,尽量减少局限性和加快处理速度(特别是需要替换的行较少时),一行可以有多处等号,估计存在的局限性除全文 ! 符会丢失外只是在需要替换的行: 不能有><&| 等特殊符,行首行尾有 = 会丢失 ,有连续 == 会变为单个 =

@echo off&setlocal enabledelayedexpansion
for /f "tokens=1* delims=:" %%a in ('findstr/n "abc=123 bcd=456" "a.txt"')do (
cls&echo/&echo 正在处理第 %%a 行
set h=%%b&call :yky
set h%%a=!h!)
cls&echo/&echo 正在写入文件
(for /f "tokens=1* delims=:" %%c in ('findstr/n ".*" "a.txt"')do (
if defined h%%c (echo.!h%%c!)else echo.%%d))>b.txt
start b.txt
exit
:yky
for /f "tokens=1* delims==" %%f in ("%h%")do (
if not "%%g"=="" set h=%%fゅ%%g&goto yky)
set h=%h:abcゅ123=abcゅ456%
set h=%h:bcdゅ456=bcdゅ123%
set h=%h:ゅ==%
goto :eof

@echo off
setlocal enabledelayedexpansion
set file1=1.txt
set file2=2.txt
for /f "tokens=1* delims=:" %%i in ('findstr /n .* "%file1%"') do (
set var=%%j
if "!var!"=="" (echo.>>%file2%) else (
set a=!var:~,3!
set b=!var:~4,3!
if !a!==abc (if !b!==123 (set var=abc=456))
if !a!==bcd (if !b!==456 (set var=bcd=123))
echo !var!>>%file2%))
pause>nul
exit
这个有限制性,只能根据你给的文本做处理。


怎么用批处理的for命令在一个文件夹循环创建1000个文件?
pause 在批处理当前路径下创建1,2,3...1000个文件夹.楼主说的md命令只能创建目录,md x:\\xx.xxx也只是创建了xx.xxx的目录而已,dos里面没有直接创建文件的命令,可以用echo >重定向创建某类文件 for \/l %%a in (1 1 1000) do echo.>%%a.jpg 创建1000个jpg文件.for命令详细用法cmd下输入for\/?

dos命令for教程,循环语句处理字符串变量文件,bat批处理脚本
详情请查看视频回答

批处理中for \/f命令怎么读取带空格的行?
for \/f "delims=" %%i in (C:\\123.txt) do echo %%i 这样即可

Win7批处理For语句执行到最后会产生空行,有办法让这个空命令去除吗...
。要在16进制的文本编辑器中才能看到。。所以find或findstr是过滤不掉的。。可以这样:echo off for \/f "tokens=2 delims==" %%a in ('wmic cpu get name \/value') do set "fas=CPU名字:%%a"&call,echo %%fas pause PS:WMIC虽然强大但是很恶心的。。。

将*拼成的直角三角形用批处理命令写出来 用for命令和set命令 急求 拜托...
echo && setlocal enabledeleyaexpansion set \/p c=请输入直角三角形的层数:set s= for \/l %%i in (1,1,!c!) do (echo %s:~%%i%)

批处理循环语句 ?
for语句 例:循环创建文件夹名为1~10000的文件夹 for \/l %%a in (1,1,10000) do md %%a

批处理for命令中”%~fI - 将 %I 扩充到一个完全合格的路径名”这句说...
对应的是t okens=2,3 分隔符为, 对应的是 delims=,查找内容在myfile.txt 对应的是 in (myfile.txt)执行以后命令 对应的是 do command 就是在myfile.txt里查找文本 并输出第二、三列及以后所有列(也就是不输出第一列)然后执行命令比如 @echo %i就是输出查找到的内容 ...

win7 批处理脚本 for命令报错,“此时不应有%%i”!
不知道你的 movefile.bat 内容是什么。你想`type filelist.tmp`输出的字符串进行什么操作。所以不能确定问题究竟在哪。可能是你do后面的内容格式不对。你可以尝试将 DO后的内容()括起来,

批处理参数详解
首先我们在桌面建立一个名字为temp.txt文本文件,在里面输入这些内容 "1111 2222""3333"44"44 然后在建立个BAT文件代码如下:FOR \/F "delims=" %%i IN (temp.txt) DO @echo %%~i pause 执行后,我们看CMD的回显如下:1111 2222"3333 44"44 和之前temp.txt中的内容对比一下,我们会发现第一行和...

请教关于批处理DIR和for命令的问题
echo off title for^&if ::for&if for %%1 in (*)do if not exist %%1\\ echo %%1 pause&cls title for \/f ::for \/f for \/f "delims=" %%1 in ('dir\/a-d\/b')do echo %%1 pause

临翔区19729968874: 批处理for命令文本替换,被替换内容中有等号的问题 -
村肤生白: 特殊符号特别是等号处理起来是非常麻烦的,得具体问题具体解决,你参考一下下面的链接: http://www.bathome.net/thread-5367-1-1.html 看来你是为了研究题目并不是为了实际应用,所以就不推荐你使用vbs了.

临翔区19729968874: 批处理如何替换文本中的指定内容 - -----满分
村肤生白: SetLocal EnableDelayedExpansion for /f "delims=" %%i in (%1) do (set var=%%iset var=!var:%2=%3!echo !var!>>%4) 把如上代码保存为 批处理 例如名字为 ch.bat 并计划把 C盘上 的123.TXT里的 AAAA 替换为 BBBB 并保存到 D盘为321.txt ...

临翔区19729968874: 批处理如何实现文本文件中指定行内容的替换? -
村肤生白: 1、首先,准备一个conf.ini,内容如下图所示.现在要将title的值修改“我是新标题”. 2、如果ini内的文件比较简单,其次可以直接新生成一个. 3、运行一下代码,效果如下,可以看到ini内容已经修改. 4、假设不知道ini的具体内容,...

临翔区19729968874: (求助)批处理中for的参数的用法! -
村肤生白: 范例要在批处理文件中使用 for,请使用以下语法:for %%variable in (set) do command [CommandLineOptions]要通过使用可替换变量 %f 显示当前目录中扩展名为 .doc 或 .txt 的所有文件的内容,请键入:for %f in (*.doc *.txt) do type %f在...

临翔区19729968874: 批处理替换指定文档中的指定内容 -
村肤生白: @echo off setlocal enabledelayedexpansion setlocal EnableExtensions set input= set /p input=请输入数字:set f="r:\aaa.txt" set f2="r:\aaa.bak.txt" if exist %f2% del %f2% for /f "tokens=* delims=%" %%l in ('type %f%') do ( set line=%%l set ...

临翔区19729968874: 批处理替换指定内容 -
村肤生白: 哈哈,被我遇到了啊 我前天就看见这问题,没时间 就先收藏下来了 没想到还没有人弄出来啊,嘿嘿!! 不客气了 我花了将近3个小时编写调试,终于成功了!! 比你的要求的还要好用点! 把分给我吧!! 下面的代码保存到一个bat文件,就可...

临翔区19729968874: 用批处理替换文本中【】中括号之间的内容..就是完成不了功能,如何修改...
村肤生白: 用bat来完成文本的替换有点“力不从心”,不是说他完成不了这样的工作.至少总有些缺憾.或是效率极低. 下面是我写的歌vbs替换代码可以做正则表达式的匹配高级替换: 如,替换“[]”里面的内容为[aa] msgbox "请选择你要操作的文件...

临翔区19729968874: 批处理中for语句的用法
村肤生白: 如果命令扩展名被启用,下列额外的 FOR 命令格式会受到 支持: FOR /D %variable IN (set) DO command [command-parameters] 如果集中包含通配符,则指定与目录名匹配,而不与文件 名匹配. FOR /R [[drive:]path] %variable IN (set) DO command [command- 检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句.如果在 /R 后没有指定目录,则使用当前 目录.如果集仅为一个单点(.)字符,则枚举该目录树.

临翔区19729968874: 批处理命令替换文本文件字段 -
村肤生白: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16@echooff for/f"delims="%%i in('dir /a-d /b /s *.txt') do(for/f"usebackq delims="%%a in("%%i") do(set"var=%%a" setlocal enabledelayedexpansion set"var=!var:营销点=!" echo!var! endlocal)>>#move # "%%i" ) pause

临翔区19729968874: 批处理的FOR学习 -
村肤生白: For对一组文件中的每个文件运行指定的命令.语法for {%variable|%%variable} in (set) do command [ CommandLineOptions]参数{%variable|%%variable} 必需.代表可替换的参数.使用 %variable 通过命令提示符执行 for 命令.使用 %%variable ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网