中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 06:40
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何用“\-/”表示一个进度状态?
楼 主 如何用“\-/”表示一个进度状态? 发表于 2006-10-30 15:40 ·  中国 上海 华为云
初级用户
积分 32
发帖 9
注册 2006-10-30 15:04
UID 68888
性别 男
状态 离线
批处理中想用“\-/”表示一个进度状态,好像“-”在翻滚那样,要怎样实现?
2 发表于 2006-10-30 20:43 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
3 发表于 2006-10-30 21:55 ·  中国 广东 清远 联通
高级用户
★★
积分 846
发帖 247
注册 2006-10-27 12:03
UID 68504
性别 男
来自 湖南==》广东
状态 离线
@echo off
set str=\-/-
setlocal enabledelayedexpansion
:test
for /l %%i in (-1 1 3) do (
set /p=!str:~%%i,1!<nul
ping /n 2 127.1>nul)
cls
goto :test
pause>nul

看看这段代码能否完成任务?如果ping /n 2 127.1实现的延时过长(2秒左右)请采用其它办法。
本帖最近评分记录 (共 3 条) 点击查看详情
评分人分数时间
redtek +2 2006-10-30 22:06
haiou327 +1 2007-05-12 16:58
sunxh +1 2009-09-12 12:50
4 发表于 2006-10-30 22:06 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
很象早期的压缩软件的处理过程,精彩~:)
给youxi01加分~:)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
qiuqiansuo +1 2007-02-01 00:58
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
5 发表于 2006-10-30 22:26 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
UID 42843
性别 男
来自 四川南充
状态 离线
我也来个:
@echo off
setlocal enabledelayedexpansion
set b=\-/-
:b
for /l %%i in (0,1,32) do call :a %%i
cls
goto :b
:a
set/a a=%1%%4
set/p=!b:~%a%,1!<nul
ping/n 2 127.1>nul
goto :eof

第二个:
@echo off
setlocal enabledelayedexpansion
set b=\-/-
:b
for /l %%i in (0,1,3) do (
echo !b:~%%i,1!
ping /n 2 127.1>nul
cls)
goto b


[ Last edited by qwe1234567 on 2006-10-30 at 10:34 PM ]
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
redtek +4 2006-10-31 02:38
sunxh +1 2009-09-12 12:51
6 发表于 2006-10-30 22:39 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
Originally posted by 9527 at 2006-10-30 22:23:
我觉得楼主并不是这个意思,/\-这三个符号你们没有看出来组合出来是个星号吗?估计他要的效果是有转动的效果,如果是转动的效果P处理是无法实玠...


原来楼主想要好玩的动画啊~:)
转动的效果照样可以实现,俺认为没有做不到的事情:)
不仅仅是转动,就是做字处理插字、改都能~:)(要用到ASCII码特殊控置字符:)

在版主qwe1234567兄的代码的基础上加了一个退格功能:)



========== 注意: 请不要直接 COPY CON 文件名.bat 的方式COPY,
========== 因下面代码特殊控置字符,直接copy是拷贝不上的。
========== 简单办法:COPY到Windows的记事本,然后另存为批处理文件,再执行。

@echo off
rem qwe1234567 字符动画

setlocal enabledelayedexpansion
set b=\-/-
set 速度=2

rem ASCII码的08就是退格特殊控制符
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


“如果是转动的效果P处理是无法实现的”,实现了吧,嘻嘻……

[ Last edited by redtek on 2006-10-30 at 10:58 PM ]
本帖最近评分记录 (共 3 条) 点击查看详情
评分人分数时间
无奈何 +4 2006-10-31 00:17
xycoordinate +1 2007-03-03 04:28
Eblis +2 2007-03-03 06:02
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
7 发表于 2006-10-30 22:48 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
你一定没试,它绝对是在(在原地)转动的效果!

楼主:“批处理中想用“\-/”表示一个进度状态,好像“-”在翻滚那样”,
绝是对这样的效果:)


每显示一个字符后,就后退一个格,然后再显示,
(很多命令行软件的提示都是这样的原理!)
这样,因为速度和人的视觉差原因,会产生一个动画的(类似转动起来的效果),
和早期压缩软件的处理效果动画一样。

[ Last edited by redtek on 2006-10-30 at 10:51 PM ]
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
8 发表于 2006-10-30 22:54 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
等等,我代码COPY错了,我这里好几个,弄混了,
不过原地转动效果真的可以,等一下。
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
9 发表于 2006-10-30 22:56 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
等等,……我又看了,不是我COPY错了!
你一定是直接在CMD SHELL上使用COPY CON 文件名.bat
来COPY上面代码的,!

所以,那里面的“退格”=我后面放的是退格的特殊控置字符,
所以,你COPY的时候可就是真的产生退格键了,而这里的退格符号你是COPY不上去的。


(你直接COPY到记事本里,然后再存就没事了!)
(原来是copy con 文件名.bat 直接COPY上面内容时,系统怎么翻译那个退格符为真的退了两个格,致使变量赋值的语句不完整了)

向9527道歉,原来就是这个原因,哈哈……

[ Last edited by redtek on 2006-10-30 at 11:08 PM ]
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
10 发表于 2006-10-30 23:00 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
直接下载,原地转动的批处理动画代码。
附件
q.rar (295 bytes, 下载附件所需积分 1 点, 下载次数: 310)
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
11 发表于 2006-10-31 00:37 ·  中国 广东 清远 联通
高级用户
★★
积分 846
发帖 247
注册 2006-10-27 12:03
UID 68504
性别 男
来自 湖南==》广东
状态 离线
兄弟愚劣,能否告知:
rem ASCII码的08就是退格特殊控制符
set 退格=
中的退格是怎么得到的?
12 发表于 2006-10-31 01:15 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
) 第一种方法:

  使用 MS-DOS自带的(WINDOWS CMD SHELL也有) ECIT.COM 编辑器得输入特殊控置符。

  进入 EDIT.COM ,按 CTRL+P组合键,然后可以输入特殊字符:
  如:退格键(让光标左移)控制符的ASCII码为 08,
    则可以 ALT+08 (按住ALT键不入,然后按右侧小键盘上的0和8键,都输完了再松开ALT键。
  注:CTRL+P只一次有效,如果再输入第二个控置字符,还得再按一次CTRL+P


) 第二种方法:用Debug得到

-D

0AF5:0100 20 20 20 20 20 0D 0A 20-20 20 20 0D 0A BA 8C 8A . .. .....
0AF5:0110 73 03 E9 4E FF 2B C8 74-D0 F6 06 15 34 00 E4 0A s..N.+.t....4...
0AF5:0120 F6 06 15 99 20 75 0A 80-3E D2 99 00 75 BB 49 74 .... u..>...u.It
0AF5:0130 B8 BA 0D 8C EB 23 33 D2-87 D1 B8 01 42 CD 21 A3 .....#3.....B.!.
0AF5:0140 DF 99 89 16 E1 99 80 3E-C5 96 00 74 9C B4 40 CD .......>...t..@.
0AF5:0150 21 72 5F C6 06 E3 99 1A-C3 E8 FF 0F FE 06 D2 96 !r_.............
0AF5:0160 80 3E D1 96 00 74 48 8B-1E 13 99 83 FB 00 7E 33 .>...tH.......~3
0AF5:0170 8B 0E E1 99 8B 16 DF 99-8B C1 0B C2 74 21 B8 00 ............t!..
-E 100

0AF5:0100 20.08

-W

Writing 0000D bytes
-Q



) 象退格这种特殊控置字符,直接在命令行上输入 ALT+08的话,它当时就“执行”了,直接就相当于你按了退格,把左边的内容删掉了。

  所以,在edit.com或其它方式间接输入比较方便。

) 如果是 07 (响铃),在命令行上输入 GTRL+G、ALT+07都可以。

) 其它控置字符详见ASCII码表
  详见如下贴子有更详细的内容……

  DOS学习入门 & 精彩文章 (教学室) » ASCII码表及含义
http://www.cn-dos.net/forum/viewthread.php?tid=1641&fpage=1&highlight=ascii%E7%A0%81


  

[ Last edited by redtek on 2006-10-31 at 01:30 AM ]
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
13 发表于 2006-10-31 01:24 ·  中国 广东 清远 联通
高级用户
★★
积分 846
发帖 247
注册 2006-10-27 12:03
UID 68504
性别 男
来自 湖南==》广东
状态 离线
非常感谢!
14 发表于 2006-10-31 01:33 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
UID 50550
状态 离线
3,用VBS:

createobject("scripting.filesystemobject").opentextfile("tmp.txt",2,true).write chr(8)

关于本主题的问题,其实在本版很早转载的一篇贴子(<深入挖掘Windows脚本技术>)里有提到过,现在看来领悟的朋友似乎比较少。
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +2 2006-10-31 02:38
15 发表于 2006-10-31 01:49 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
ASCII码与码表以及相关内容详见如下贴子~:)



ASCII码表及含义
http://www.cn-dos.net/forum/viewthread.php?tid=1641&fpage=1&highlight=ascii%E7%A0%81


ASCII编码表
http://www.cn-dos.net/forum/viewthread.php?tid=18942&fpage=1&highlight=ASCII


dos界面中看ASCII码星球大战
http://www.cn-dos.net/forum/viewthread.php?tid=23874&fpage=1&highlight=ASCII

无奈何签名代码略析
http://www.cn-dos.net/forum/viewthread.php?tid=18838&fpage=1&highlight=%E6%97%A0%E5%A5%88%E4%BD%95



有关ASCII码以及关于ANSI动画、绘图、定义键盘的更高级的贴子有:
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

ANSI.SYS程序的使用
http://www.cn-dos.net/forum/viewthread.php?tid=1272&fpage=1&highlight=ANSI


脱离CONFIG里ANSI驱动实现屏幕彩色显示效果
http://www.cn-dos.net/forum/viewthread.php?tid=22025&fpage=1&highlight=ANSI


RAR支持ANSI转义字符
http://www.cn-dos.net/forum/viewthread.php?tid=21800&fpage=1&highlight=ANSI

(如上:RAR支持ANSI转义字符)
(   可以使自己的网站的RAR压缩包的个性化版权以及压缩包内容声明等)
(   可以间接利用RAR的这个自带特性简单学习ANSI-在无纯DOS的环境下)
(   可以间接画自己喜欢的图像等)

(   关于ANSI做图的内容,在gOOGLE.com上可以检索到很多工具)
(   同时,还可以检索到BMP图像文件转ANSI字符图工具等……)

[ Last edited by redtek on 2006-10-31 at 05:29 AM ]
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
论坛跳转: