批处理将文本中的变量名替换为变量值并删除定义赋值语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批处理将文本中的变量名替换为变量值并删除定义赋值语句相关的知识,希望对你有一定的参考价值。
如何用批处理将下面文本1改为文本2。
文本1:
DIM dialog
dialog = 9
DIM id41
id41 = objApp.CharIDToTypeID( "ImgS" )
Call objApp.ExecuteAction( id41, dialog )
文本2:
Call objApp.ExecuteAction( objApp.CharIDToTypeID( "ImgS" ), 9 )
注:1.删除含DIM的变量定义语句。
2. 用赋值符“=”右边的内容(变量值)代替后面执行语句中出现的“=”左边的字符(变量名),并删除有等号的赋值语句。
3. D:\aa目录下有多个txt文件,要全部替换。批处理可放在相同文件夹下。
4. 高手请进,谢绝“用查找-替换”之类的小儿科。50分回报。
REM ====::以REM开头的,整行删除,属代码注释。
DIM objApp ::以DIM开头的整行删除,属定义语句,下同。
SET objApp = Create("Applicat") ::以SET开头的虽然有等号,不删除,整行保留。
DIM dialog ::整行删除。
dialog = 3 ::因上一行有DIM dialog,就用等号后面的3用来代替末行括号内出现的dialog,然后删除本行(如以SET定义的不替换)。
DIM desc21 ::整行删除。
SET desc21 = Create( "Action" ) ::以SET开头的虽然有等号,不删除,整行保留,也不替换后面的desc21。
DIM id121 ::整行删除。
id121 = objApp.CharID( "By " ) ::上一行有DIM id121,就用等号后面的内容用来代替倒数第2行出现的id121。
DIM id122 ::整行删除。
id122 = objApp.CharID( "#Pxl" ) ::上一行有DIM id122,就用等号后面的内容用来代替下一行出现的id122。
Call desc21.PutUnit( id121, id122, 10 ) ::用前面id121,id122的等号后面的内容代替这里的id121,id122,数字10不变。
Call objApp.Action( desc21, dialog ) ::同上一行。
hackate的脚本虽然没有解决问题,仍然谢谢hackate!!我用VB编写了一个小程序已解决了此问题。
setlocal enabledelayedexpansion
for /f "tokens=1,2 delims==" %%a in (a.txt) do (
set "str=%%a"
if /i not "!str:~0,3!"=="dim" (
if /i "!str:~0,2!"=="id" (
set n=!str:~2!
set n=!n: =!
set "id!n!=%%b"
) else (
if /i not "!str:~0,6!"=="dialog" (
>>c.txt echo.%%a
)
)
)
)
for /l %%c in (1,1,100) do (
if not "!id%%c!"=="" (
set strSed=!id%%c:"=\x22!
sed -i "s/id%%c/!strSed!/g" c.txt
)
)
sed -i "s/dialog/9/g" c.txt
这样基本已经符合你的要求,够伤脑筋的..
还有哦,告诉你下..
这里面的sed是用的第三方命令行工具,因为如若替换功能没有使用这个工具,那工程量非常非常大,也非常麻烦,所以如若只许达到目的没关系的,而且效率高非常多的..
第三方工具下载地址:
http://rtngslin.moe.hm/cndos-up/img/937.zip 参考技术B xdd
python定义变量常量
1、变量定义规范:
变量名(标识符)=变量值,变量名只能是字母、数字、或下划线的任意组合,第一个字符不能是数字,不能用python中的关键字。
2、变量的存储:
先给a赋值3,再设置b = a ,再给a赋值5,此时a=5,b=3,这种情况是因为给a赋值3,实际上是把a的指针指向3的存储位置,b = a,将b的指针指向3,再给a
赋值5,实际上把a的指针指向5的存储位置,此时未对b进行操作,则b的指针还是指向3,所以重新给a赋值后,a = 5,b=3。
3、常量:全部大写,常量是不变的。
以上是关于批处理将文本中的变量名替换为变量值并删除定义赋值语句的主要内容,如果未能解决你的问题,请参考以下文章