中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-30 08:52
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何用“\-/”表示一个进度状态? 精华I 查看 24,751 回复 57
31 稍稍修改了一下 发表于 2006-11-02 01:33 ·  中国 上海 漕河泾科技网IDC机房
新手上路
积分 9
发帖 5
注册 2006-10-11 05:17
19年会员
UID 65272
状态 离线
把.换成了▌


@echo off
setlocal enabledelayedexpansion
set b=/-\ /-\ **
set 速度=1
set 退格=
:b
for /l %%i in (0,1,200) do call :a %%i
goto :b
:a
set/a a=%1%%10
set/a c=%a%%%4
if %a% EQU 0 set/p=▌<nul
if %c% EQU 3 (set/p=^|<nul) else (set/p=!b:~%a%,1!<nul)
ping/n %速度% 127.1>nul
set/p=%退格%<nul
goto :eof

32 发表于 2006-11-02 02:05 ·  中国 广东 茂名 电信
中级用户
★★
积分 261
发帖 123
注册 2006-06-06 19:23
20年会员
UID 56648
状态 离线
Originally posted by kawakumo at 2006-11-1 13:58:
如果把这个效果用于表示进度,怎样控制?比如显示复制文件的进度。


这个才是问题
我只想知道,比如复制文件就显示进度,不用进度对应,只要显示就行,复制完后进度就不显示。
33 发表于 2006-11-03 20:41 ·  中国 福建 泉州 石狮市 电信
银牌会员
★★★
积分 1,276
发帖 469
注册 2002-12-23 13:00
23年会员
UID 586
性别 男
来自 福建泉州
状态 离线
效果不是很好,运行这个会将c:\windows\*.*复制到当前目录并显示进度.


  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set b=/-\ /-\ **
  4. set 速度=1
  5. set 退格=
  6. set n=0

  7. for %%i in (%SystemRoot%\*.*) do (call :a !n!&copy %%i>nul 2>nul&set /a n+=1)
  8. goto :eof

  9. :a
  10. set/a a=%1%%10
  11. set/a c=%a%%%4
  12. if %a% EQU 0 set/p=▌<nul
  13. if %c% EQU 3 (set/p=^|<nul) else (set/p=!b:~%a%,1!<nul)
  14. ping/n %速度% 127.1>nul
  15. set/p=%退格%<nul
  16. goto :eof
chenall 发表于: 2006-11-03 08:37


[ Last edited by chenall on 2006-11-3 at 08:46 PM ]
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
redtek +4 2006-11-04 03:48
jiangnan110 -2 2007-06-08 20:15
QQ:366840202
http://chenall.net
34 发表于 2006-11-04 08:33 ·  中国 上海 华为云
初级用户
积分 32
发帖 9
注册 2006-10-30 15:04
19年会员
UID 68888
性别 男
状态 离线
真不错,厉害啊
35 发表于 2006-11-10 00:41 ·  IANA 局域网IP(Private-Use)
初级用户
积分 34
发帖 13
注册 2006-07-20 19:11
19年会员
UID 58929
性别 男
状态 离线
偶也来改进一下,显示有竖线的进度循环,呵呵!

@echo off
setlocal enabledelayedexpansion
set b=^|/-\
set 速度=1
set 退格=
:b
for /l %%i in (0,1,200) do call :a %%i
goto :b
:a
set/a a=%1%%4
set/p=!b:~%a%,1!<nul
ping/n %速度% 127.1>nul
set/p=%退格%<nul
goto :eof
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +2 2006-11-11 03:19
36 发表于 2006-11-19 07:43 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
Originally posted by skyearth at 2006-11-10 00:41:
偶也来改进一下,显示有竖线的进度循环,呵呵!

@echo off
setlocal enabledelayedexpansion
set b=^|/-\
set 速度=1
set 退格=
:b
for /l %%i in (0,1,200) do call :a %% ...

是否可以自己定位进度循环在屏幕中的位置.
37 发表于 2006-11-23 06:43
中级用户
★★
DOS之日
积分 337
发帖 161
注册 2006-11-04 05:27
19年会员
UID 69523
性别 男
状态 离线
学习
for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul
38 如果进度条能够与被调用的子程序同步就好了。 发表于 2006-12-14 00:41 ·  中国 湖南 永州 电信
初级用户
积分 56
发帖 20
注册 2006-04-23 12:47
20年会员
UID 54313
状态 离线
33楼的演示了文件复制的情形,以复制文件的个数为步进量,如果只复制一个比较大的(>=500m)文件呢,怎么办!
如果进度条能够与被调用的子程序同步就好了。
39 发表于 2007-03-02 16:30 ·  中国 广东 茂名 电信
新手上路
积分 18
发帖 6
注册 2007-03-02 16:10
19年会员
UID 80575
性别 男
状态 离线
nb 不太喜欢用ping控制延迟 用

for /l %%i in (1,1,1000) do echo %%i>nul 吧

[ Last edited by a11yesno on 2007-3-2 at 04:36 AM ]
40 发表于 2007-03-03 04:35 ·  中国 安徽 马鞍山 电信
中级用户
★★
积分 493
发帖 228
注册 2007-02-16 00:38
19年会员
UID 79596
性别 男
来自 安徽
状态 离线
chenall:
for %%i in (%SystemRoot%\*.*) do (call :a !n!&copy %%i>nul 2>nul&set /a n+=1)

看不太清楚!
为何???(%SystemRoot%\*.*)

set/a a=%1%%10
是%1除以10取余?

set/a c=%a%%%4
是%a%除以4取余?

&copy %%i>nul
害人呀????!!!

幸好,你没有
&del %%i>nul
那可就惨了!

[ Last edited by xycoordinate on 2007-3-2 at 03:49 PM ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
jiangnan110 +1 2007-06-08 20:16
41 发表于 2007-03-03 07:11 ·  中国 浙江 绍兴 电信
高级用户
★★★
Autowalk
积分 845
发帖 375
注册 2007-03-03 01:58
19年会员
UID 80606
性别 男
状态 离线
真的转起来了,-_-! 真强悍!
42 发表于 2007-03-12 06:52 ·  中国 北京 海淀区 IDC机房
初级用户
☆流星雨◇帅气冲天狂
积分 24
发帖 21
注册 2007-03-09 08:10
19年会员
UID 81176
性别 男
来自 广东
状态 离线
看贴回贴养成好习惯
43 发表于 2007-04-17 02:21 ·  中国 上海 长宁区 电信
初级用户
积分 38
发帖 15
注册 2007-04-13 20:38
19年会员
UID 85037
性别 男
状态 离线
娃哈哈
44 发表于 2007-04-17 03:08 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
22年会员
UID 7105
性别 男
状态 离线
恩,获取ASCII控制符的玩法很不错,挺过瘾..
不过,如果只想获取0x08字符, 用个16进制编辑器,输入08就行了吧?
45 发表于 2007-04-17 04:35 ·  中国 广东 深圳 南山区 电信
新手上路
积分 4
发帖 2
注册 2007-04-10 06:55
19年会员
UID 84585
性别 男
状态 离线
闹大了哦 !六楼的大哥效果不错,就是看着不舒服
论坛跳转: