标题: [数值计算] 批处理命令set表达式为啥不能累加计算? [打印本页]
作者: awool 时间: 2013-10-25 18:25 标题: 批处理命令set表达式为啥不能累加计算?
afile.txt文件内容:
UserName1=
UserName2=
UserName3=
希望生成bfile.txt文件内容:
UserName1=
welcom you!
UserName2=
UserName3=
代码如下:- @echo off
- set /a n=0
- FOR /F "delims=" %%i in (afile.txt) do (
- echo %%i >> bfile.txt
- set /a n=%n%+1
- echo %n%
- if %n% equ 1 (
- echo welcom you! >> bfile.txt
- )
-
- )
复制代码
想在第二行加入字符串,但是 set /a n=%n%+1并没有累加计算,谁能解决下》?
作者: foxJL 时间: 2013-10-25 18:33
本帖最后由 foxJL 于 2013-10-25 18:35 编辑
- @echo off&setlocal enabledelayedexpansion
- set /a n=0
- FOR /F "delims=" %%i in (afile.txt) do (
- echo %%i >> bfile.txt
- set /a n+=1
- echo !n!
- if !n! equ 1 (
- echo welcom you^! >> bfile.txt
- )
-
- )
- pause
复制代码
作者: awool 时间: 2013-10-25 18:37
回复 2# foxJL
真感谢呀!
不过, 好像welcom you ! 的感叹号没有输出来? 为啥呀》?
作者: foxJL 时间: 2013-10-25 18:41
回复 3# awool
因为开启变量延迟后!号变成了引用变量的特殊符号,要加上^符号转义后才能输出.
上面更新了,你再试.
作者: terse 时间: 2013-10-25 18:44
如果文件不大 可以这样处理- @echo off
- set /p str=<"a.txt"
- >bfile.txt (
- echo %str%
- echo welcom you!
- more +1 a.txt
- )
- pause
复制代码
作者: digger 时间: 2013-10-25 19:05
本帖最后由 digger 于 2013-10-25 19:06 编辑
- @echo off&setlocal enabledelayedexpansion
- set m=1
- for /f "delims=" %%i in (afile.txt) do (
- if "!m!"=="1" (echo.%%i&echo.welcom you^^!&set m=) else echo %%i
- )>>bfile.txt
- pause
复制代码
作者: 522235677 时间: 2013-10-25 23:09
开启延迟环境变量扩展
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |