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

[数值计算] 批处理在变量后面加一段字符,有更好的方法么?

这次标题实在难写~

据大家所知,如果要更换"a"的变量,就可以用
  1. set a=123
复制代码
来改变
如果要在"a"的变量上进行计算,增加"123",就可以用
  1. set /a a+=123
复制代码
但如果要在"a"的变量上加入一段字符,而不是更换,本人只想到一个方法:
  1. set a=%a%123
复制代码
但这个方法在变量名很长(比如"happyfamily")的情况下,就会很明显地增加批处理的大小了~
不懂前辈们有没有更好的方法?

按“发表”前还想到一个方法,就是用for:
  1. for %%i in ("%happyfamily%") do (
  2. set happyfamily=%%i123
  3. )
复制代码
但感觉没解决到问题
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

回复 3# CrLf


制作比较大的批处理时,为了比较容易分析,都使用比较长的变量名
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

TOP

回复 7# CrLf
  1. setlocal enabledelayedexpansion
  2. for /f %%a in (1.txt) do set "str=!str! %%a"
  3. findstr "!str!" 2.txt
复制代码
这个代码让我想起了cpaint,一次搞定,效率就是不一样,如果没猜错,你这个的原理大概也和
  1. set /p a=
  2. set /p b=
  3. ::if %a%=a and %b%=b echo yes
  4. if "%a% %b%"=="a b" echo yes
复制代码
一样吧~ 你这个代码就是先读完txt,再一次判断吧~

前阵子还看到一个代码,大概是这样的:
  1. set debug=0
  2. if "%debug%"=="1" (set "mark=") else (set "mark=rem")
复制代码
都是些很有趣的方法~

其实前阵子还用cpaint重做了3D按钮代码,配合mouse.exe和eudc.exe,可以高仿98按钮了(按下去真的有3d效果)~ cpu占用来可以,但是也因为用了很长的变量名,导致代码2KB以上
做好了,才发现,真的有用么?除非我可以搞到些有用的东西,并可以很好地和我这个代码配合,否则都是浮云啊~

最近在研究如何在批处理里调用openfiledialog控件,目前找不到完美的方法,还发现VBS也好不到哪里去,很多可以在xp下用的控件在win7就不好使了~
为何批处理不适合做界面
为何随风讨厌call命令
http://bbs.bathome.net/thread-4482-1-10.html

TOP

返回列表