中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-15 04:24
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS学习入门 & 精彩文章 (教学室) » DOS命令技巧集锦
可打印版本  6,060 / 23
第1楼 自由人 发表于 2002-12-31 00:00
初级用户 发帖 15 积分 169
DOS命令技巧集锦
批处理的技巧是很多的,能完成许多Windows下做不来或做不好的事。
@echo off //取消命令运行时在屏幕的显示
echo. |date| find "Current" //只显示日期
echo. |time| find "Current" //只显示时间
:: //相当于rem
call //调用另外一个批文件
del %0 //自我删除
if "%1" == "字符串" goto //如 if "%1" == "/p" goto p
if "%1" == "字符串" 命令 //if "%1" == "/p" dir /w/p c:
if exist 文件 命令 //如果文件存在则运行命令
copy /b //文件合并
fdisk /mbr //卸载主引导记录 如果被LILO覆盖了主引导记录,可以用来清除
prompt $p$g //恢复提示符
echo Free and Open > new DOS.txt //将Free and Open写入new DOS.txt
echo Happy New year >> new DOS.txt //继续将Happy New year写入new DOS.txt
lh //将设备载入高端 如lh smartdrv /x
mode 80 恢复显示默认设置
mode mono 激活单色显示器
mode con:cols=40-80 lines=25-50 //40-80;25-50为参数
键盘控制
mode con:rate=32 delay=1 //轻捷
mode con:rate=20 delay=4 //准确
mode con:rate=20 delay=2 //默认
打印控制
mode com1:9600,8,N,1 //快速
mode lpt1=com1
mode com1:2400,8,N,1 //慢速
mode lpt1=com1
echo 你好 > prn //测试打印
安装光驱
config.sys加中入
devicehigh=boot\CD-ROM.sys /d MSCD001
autoexec.bat加入
path boot
mscdex /d MSCD001 /m 12
//CD-ROM.sys 可用万能光驱IDE.sys代替
//菜单显示,选择
echo 1.
echo 2.
echo 3.
...
echo 9.
choice /c:123456789 /n 请选择:
if errorlevel 9 goto 9
if errorlevel 8 goto 8
if errorlevel 7 goto 7
if errorlevel 6 goto 6
if errorlevel 5 goto 5
if errorlevel 4 goto 4
if errorlevel 3 goto 3
if errorlevel 2 goto 2
if errotlevel 1 goto 1

简单的一个范例
@echo off
if "%1" == "/all" goto all
If exist c:\1.txt goto 1
echo 没有找到文件1.txt
goto end
:1
echo 文件1.txt存在,按任意键阅读...
pause > nul
type 1.txt | more
goto end
:all
dir /s/w/p 1.txt
:: 显示C盘子目录下所有1.txt
:end
第2楼 nre 发表于 2002-12-31 00:00
银牌会员 发帖 361 积分 1,210
不错不错~ 不过希望再归归类,这样的方式不方便查找和学习
请教个问题 DEL %0 怎么用?
更正一下上面一些不妥的地方
FDISK/MBR 不是删除MBR(主引导记录),而是用默认的主引导记录覆盖当前的MBR内容
copy /b 仅这个不能实现合并,/B是指定以2进制方式合并, /A就是ASIIC文件。
copy 文件1 + 文件2 +。。。文件N 目标文件

choice,mode,more都是外部命令,编BAT时如果用到这些命令,要考虑到文件存在否
第3楼 自由人 发表于 2003-01-01 00:00
初级用户 发帖 15 积分 169
谢谢NRE指正不妥之处
把del %0加在批处理文件的最后嘛 完成后就自我删除了
上面绝大多数命令都可以直接插入批处理文件中使用
只是仅仅列出一部分技巧及不常用的命令参数,还有许多待我整理后将一一列出。当然如果有人有这方面的问题的话,我会很乐意为你解答。

第4楼 nre 发表于 2003-01-01 00:00
银牌会员 发帖 361 积分 1,210
DEL 的这种用法还是第一次看到,经典~
我试了一下,%0里存的是调用文件的文件名,不包括扩展名
所以 需要加上扩展名 del %0.bat 才能实现自动删除
不过这么做,运行之后会出现BATCH FILE MISSING的提示
第5楼 tanglu_sd 发表于 2003-01-01 00:00
高级用户 发帖 271 积分 948 来自 sd
用win98自带的启动盘启动后的虚拟的盘,是怎么建立出来的?
第6楼 小臣 发表于 2003-01-06 00:00
初级用户 发帖 6 积分 123
可以教一下我吗?
DEL %0 自我删除 有什么作用的呢???
第7楼 小臣 发表于 2003-01-06 00:00
初级用户 发帖 6 积分 123
照你的写法来看,在DOS下,是不是要装UCDOS呢??
第8楼 小臣 发表于 2003-01-06 00:00
初级用户 发帖 6 积分 123
有谁可以教教我在DOS下,我只会用FDISK CD DIR DEL SCANDISK MD RD 等这几个命令,请问DOS高手门还有没有其它的呢???请多多多多多指教!
第9楼 MYS 发表于 2003-01-06 00:00
元老会员 发帖 1,637 积分 5,170 来自 广东佛山
还有很多。
diskcopy
msav
xcopy
smartdrv
help
deltree
format
sys
...
第10楼 Wengier 发表于 2003-01-06 00:00
系统支持 发帖 10,521 积分 27,736
DEL %0这个命令很有问题,因为%0参数其实返回的是用于执行此批处理文件的命令行。例如,当我想执行ABC.BAT批文件的时候,在命令行上输入ABC或ABC.BAT都可以执行,这样,%0的值就可能完全不同,也就是说它的值为“ABC”或“ABC.BAT”等都可能。而若为前者的话,DEL %0也就是DEL ABC是不可能将ABC.BAT自身删除的。
第11楼 redtek 发表于 2006-09-29 06:17
金牌会员 发帖 1,147 积分 2,902
要不就执行两句:

DEL %0
DEL %0.BAT

两条都写上,总有一个可以正常删掉自己~:)
第12楼 electronixtar 发表于 2006-09-29 07:27
铂金会员 发帖 2,672 积分 7,493
del %~f0
第13楼 redtek 发表于 2006-09-29 07:47
金牌会员 发帖 1,147 积分 2,902


原来带空格的目录名DEL时没引号:)



执行:


被删掉了~:)

感谢 electronixtar 的精彩 %~f0 代码,我又学到好多东东~:)
后来for /? 的注释: %~fI - 将 %I 扩展到一个完全合格的路径名

这个 %~f0 用的真精彩~:)
第14楼 jieok3375 发表于 2006-09-30 03:52
中级用户 发帖 130 积分 282 来自 广东
学习了
第15楼 winzip126 发表于 2006-10-23 23:24
新手上路 发帖 6 积分 18
收藏
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023