中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-07 22:31
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何记录批处理本身运行的次数 查看 853 回复 11
楼 主 [求助]如何记录批处理本身运行的次数 发表于 2008-03-26 19:45 ·  中国 广东 深圳 电信
初级用户
积分 66
发帖 25
注册 2008-03-06 12:56
18年会员
UID 112175
性别 男
状态 离线
如何记录批处理本身运行的次数,比如,运行了1次,运行第二次是会显示运行了2次。
2 发表于 2008-03-26 20:27 ·  中国 江苏 苏州 电信
初级用户
★★
积分 120
发帖 60
注册 2007-10-26 22:42
18年会员
UID 100889
性别 男
状态 离线
貌似变量设置只在当前环境下有效
只通过批处理本身的话不会 如果导出记录文件关联的话 应该还是容易实现的
3 发表于 2008-03-26 20:27 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
@echo off
set/p n=<%tmp%\n&cls
set/a n+=1
echo 第%n%次&echo %n% >%tmp%\n
pause
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
4 发表于 2008-03-27 10:42 ·  中国 广东 深圳 福田区 电信
初级用户
积分 66
发帖 25
注册 2008-03-06 12:56
18年会员
UID 112175
性别 男
状态 离线
谢谢
5 发表于 2008-03-27 10:56 ·  中国 广西 玉林 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
6 发表于 2008-03-27 11:21 ·  中国 陕西 西安 电信
初级用户
替身
积分 122
发帖 17
注册 2008-03-27 10:12
18年会员
UID 114154
性别 男
状态 离线
zh159
的方法巧,(其实用%~s0也可以兼容空格)

顺便请教下:

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

我想用echo的方法 特殊字符不好处理.
7 发表于 2008-03-27 12:14 ·  中国 广西 玉林 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
单纯批处理好像不行,不过可以考虑用内嵌VBS脚本来处理
8 发表于 2008-03-27 12:46 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
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
简单!简单!再简单!
9 发表于 2008-03-27 13:20 ·  中国 广东 珠海 电信
初级用户
★★
积分 97
发帖 51
注册 2008-03-19 15:26
18年会员
UID 113404
性别 男
状态 离线
学习! 很好, 很强大..
10 发表于 2008-03-27 13:50 ·  中国 陕西 西安 电信
初级用户
替身
积分 122
发帖 17
注册 2008-03-27 10:12
18年会员
UID 114154
性别 男
状态 离线
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可以显示某行以后的,但好像难以显示多少行以前的.
11 发表于 2008-03-27 14:11 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
Originally posted by jvive at 2008-3-27 13:50:

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

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


显示指定行并不一定要用more 判断就可以嘛
简单!简单!再简单!
12 发表于 2008-03-28 10:15 ·  中国 广东 深圳 电信
初级用户
积分 66
发帖 25
注册 2008-03-06 12:56
18年会员
UID 112175
性别 男
状态 离线
@echo off
set/p o=<%tmp%\o&cls
set/a o+=1
echo %o% >%tmp%\o
if "%o%"gtr"20" echo 20 &&pause

这样怎么不行啊???
论坛跳转: