Board logo

标题: [求助]如何记录批处理本身运行的次数 [打印本页]

作者: fmr520     时间: 2008-3-26 19:45    标题: [求助]如何记录批处理本身运行的次数
如何记录批处理本身运行的次数,比如,运行了1次,运行第二次是会显示运行了2次。

作者: faultcode     时间: 2008-3-26 20:27
貌似变量设置只在当前环境下有效
只通过批处理本身的话不会 如果导出记录文件关联的话 应该还是容易实现的

作者: plp626     时间: 2008-3-26 20:27
@echo off
set/p n=<%tmp%\n&cls
set/a n+=1
echo 第%n%次&echo %n% >%tmp%\n
pause

作者: fmr520     时间: 2008-3-27 10:42
谢谢

作者: zh159     时间: 2008-3-27 10:56
作者: jvive     时间: 2008-3-27 11:21
zh159
的方法巧,(其实用%~s0也可以兼容空格)

顺便请教下:

在批处理文件运行后, 怎样可以对批处理自身文件的第一行字符,与最后一行字符进行修改.其他行不变.(所谓的变身)

我想用echo的方法 特殊字符不好处理.

作者: zh159     时间: 2008-3-27 12:14
单纯批处理好像不行,不过可以考虑用内嵌VBS脚本来处理

作者: terse     时间: 2008-3-27 12:46
Originally posted by jvive at 2008-3-27 11:21:
zh159
的方法巧,(其实用%~s0也可以兼容空格)

顺便请教下:

在批处理文件运行后, 怎样可以对批处理自身文件的第一行字符,与最后一行字符 ...

你的意思是不是这样?
:1
@echo off
for /f "delims=:" %%a in (%~nx0) do set/a a=%%a& goto _next
:_next
echo 运行第 %a% 次
set/a a+=1
>_emp echo :%a%
for /f "delims=" %%a in ('more/e +1 "%~nx0"') do >>_emp echo %%a
move /y "_emp" "%~nx0" 2>NUL
pause

作者: Shinaterry     时间: 2008-3-27 13:20
学习! 很好, 很强大..

作者: jvive     时间: 2008-3-27 13:50
Originally posted by terse at 2008-3-27 12:46 PM:

你的意思是不是这样?
:1
@echo off
for /f "delims=:" %%a in (%~nx0) do set/a a=%%a& goto _next
:_next
echo 运行第 %a% 次
set/a a+=1
>_emp echo :%a%
for /f &q ...

不局限于本帖. 这个帖子让我想到了"程序变身"

PS: more可以显示某行以后的,但好像难以显示多少行以前的.

作者: terse     时间: 2008-3-27 14:11
Originally posted by jvive at 2008-3-27 13:50:

不局限于本帖. 这个帖子让我想到了"程序变身"

PS: more可以显示某行以后的,但好像难以显示多少行以前的.


显示指定行并不一定要用more 判断就可以嘛

作者: fmr520     时间: 2008-3-28 10:15
@echo off
set/p o=<%tmp%\o&cls
set/a o+=1
echo %o% >%tmp%\o
if "%o%"gtr"20" echo 20 &&pause

这样怎么不行啊???