中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » dos6.22机上做个拷XP机中指定文件的批处理
« [1] [2] [3] »
作者:
标题: dos6.22机上做个拷XP机中指定文件的批处理 上一主题 | 下一主题
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 16 楼』:  


  不好意思,因为没有DOS 6.22的环境,所以不知道哪些命令可以用,哪些不可以用。我也没办法。


2006-10-23 10:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
rgb82754670
初级用户

rgb红绿蓝


积分 126
发帖 42
注册 2006-7-22
状态 离线
『第 17 楼』:  不知道lxmxn兄能否就下面的几个命令帮我写个批处理

纯DOS自带的批处理命令:

@
CALL
CHOICE用法:CHOICE:[/C[:]按键表] [/N] [/S] [/T[:]选择值,秒数] [显示文本]
其中,/C表示可选则的按键,/N表示不要显示提示信息,/S表示大小写字符敏感方式,/T表示若在批定的时间内没有选则的话,自动执行/C中定义的某个选择值。显示文本是CHOICE命令执行时的提示信息。选择结果将用ERRORLEVEL值来表示。
ECHO :显示指定的信息。通常显示在屏幕上。
FOR :用法:FOR %变量名 IN (文件集) DO 命令 [命令参数]
GOTO :转到批文件内部的某个标号下执行。
IF :条件判断命令。用法1:IF [NOT] EXIST 文件名 命令 [命令参数]
                            用法2:IF [NOT] ERRORLEVEL 错误返回代号 命令 [命令参数]
                            用法3:IF [NOT] 字符串1==字符串2 命令 [命令参数]
PAUSE :暂停批文件的执行,并显示“按任意键继续”的字样。
REM :添加注解。用于增加文件可读性,将不被执行。也可以用::来代替。
SHIFT :在批文件中改变可替换参数的位置。
可替换参数是一种特殊的参数,只能用在批文件中。这些参数是由使用者在执行批处理命令时输入的。比如,我们执行DIR /S /W命令,其中DIR是命令名,/S和/W是它的执行参数。在批文件中,这些命令参数将被分别赋予到可替换参数中,如/S就成的%1,/W就可了%2,以至类推,而命令本身则被赋予%0中。批文件就是利用可替换参数对执行时输入的参数来进行操作的。比如现在有个批处理文件叫MYFILE.BAT,在命令行下执行MYFILE.BAT YES,于是%0的值就是MYFILE.BAT,%1的值就是“YES”,可以在此批文件中用IF等命令判断出%1等参数的值,然后根据这些值的不同执行不同的操作,如IF "%1"=="YES" GOTO YES。
SHIFT命令不带任何参数,执行结果是将%0的值换成原%1的值,而原%1的值变成的原%2的值,以此类推。注意它的不可逆转性。因为批处理文件执行时的运行参数可能很多,可能会超过10个,而可替换参数只能从%0到%9,若想取得%9以后的参数值,只能使用SHIFT命令。这时,整个参数列将向前推。



[rgb红绿蓝
2006-10-26 10:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 18 楼』:  


@echo off
dir f:\>nul 2>nul
if errorlevel 1 echo The Windows XP has not on OR the Network has disconnected.&pause&goto eof
if errerlevel 0 goto true

:true
if not exist F:\%1.wbf echo The Windows XP has not exist the file you want.&pause&goto eof
copy F:\%1.wbf .
echo One file(s) copied successfully.
pause
dd.exe %1.wbf

:eof
如果还是有问题,请继续跟帖讨论.


[ Last edited by lxmxn on 2006-10-26 at 02:10 PM ]

2006-10-26 14:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
rgb82754670
初级用户

rgb红绿蓝


积分 126
发帖 42
注册 2006-7-22
状态 离线
『第 19 楼』:  dos6.22下测试如下

1.SCREEN01.jpg
  这是f:\没有dwl10z.wbf文件的结果。
  接着按任意建进入dd.exe

2.SCREEN02.jpg
  这是f:\有dwc10zwb.wbf文件的结果。
  接着按任意建进入dd.exe


3.最后都进dd.exe

[ Last edited by rgb82754670 on 2006-10-27 at 11:13 AM ]

附件 1: SCREEN01.jpg (2006-10-27 11:03, 14.88 K, 下载附件所需积分 1 点 ,下载次数: 3)


附件 2: SCREEN02.jpg (2006-10-27 11:12, 8.51 K, 下载附件所需积分 1 点 ,下载次数: 2)




[rgb红绿蓝
2006-10-27 11:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 20 楼』:  


  兄弟,再试试这个,如果还不行,请继续跟帖讨论。=_=!!
@echo off
dir f:\
if errorlevel 1 goto fail
if errerlevel 0 goto true

:true
if not exist F:\%1.wbf goto yes
copy F:\%1.wbf .
echo One file(s) copied successfully.
pause
dd.exe %1.wbf

:fail
echo The Windows XP has not on OR the Network has disconnected.
pause
goto eof

:yes
echo The Windows XP has not exist the file you want.
pause
goto eof

:eof
  
    p.s:没有想到DOS 6.22竟然不支持"&"连接符.汗一个..


2006-10-27 20:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
9527
银牌会员

努力做坏人


积分 1185
发帖 438
注册 2006-8-28
来自 北京
状态 离线
『第 21 楼』:  

你八楼的代码改成以下试试,dos6.22 是不支持IF ELSE语句的,还有就是注意你的GOTO语句的转向问题,P处理是按顺序执行的
@echo off
if exist F:\%1.WBF goto _copy
goto kk
:_copy
copy F:\%1.Wbf /y
ck81.bat 1%.wbf
goto end
:kk
echo not files
:end

我的目的是如果f:\1%.wbf不在,则显示not files并且返回dos;
               如果f:\1%.wbf在,则copy f:\1%.wbf/y 并且执行ck81.bat 1%.wbf

   此帖被 +3 点积分       点击查看详情   
评分人:【 rgb82754670 分数: +3  时间:2006-10-28 03:29




我今后在论坛的目标就是做个超级坏人!!!
2006-10-27 22:24
查看资料  发短消息 网志  OICQ (329429)  编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 22 楼』:  


@echo off
if %1#==# goto END
@ctty nul
command /f /c if not exist f:\nul echo not connected>state1.flg
command /f /c if not exist f:\%1.wbf echo file not exist>state2.flg
@ctty con
find "file not exist" state2.flg>nul
if errorlevel 1 GOTO COPY
find "not connected" state1.flg>nul
if errorlevel 1 GOTO NOFILE
type state1.flg
GOTO DEL

:NOFILE
type state2.flg
GOTO DEL

:COPY
copy f:\%1.wbf

:DEL
del state1.flg
del state2.flg

:END
if exist %1.wbf dd %1.wbf
不知道能不能帮上忙。试试?

[ Last edited by NaturalJ0 on 2006-10-27 at 11:50 PM ]

2006-10-27 23:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
rgb82754670
初级用户

rgb红绿蓝


积分 126
发帖 42
注册 2006-7-22
状态 离线
『第 23 楼』:  感谢21楼,你的方法可以



  Quote:
Originally posted by 9527 at 2006-10-27 22:24:
你八楼的代码改成以下试试,dos6.22 是不支持IF ELSE语句的,还有就是注意你的GOTO语句的转向问题,P处理是按顺序执行的
@echo off
if exist F:\%1.WBF goto _c ...

感谢21楼,你的方法可以



[rgb红绿蓝
2006-10-28 03:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
rgb82754670
初级用户

rgb红绿蓝


积分 126
发帖 42
注册 2006-7-22
状态 离线
『第 24 楼』:  



  Quote:
Originally posted by lxmxn at 2006-10-27 20:43:

  兄弟,再试试这个,如果还不行,请继续跟帖讨论。=_=!!
[code]
@echo off
dir f:\
if errorlevel 1 goto fail
if errerlevel 0 goto true

:true
if n ...

20楼的仁兄,dir f:\ 我有上万个文件,光显示都要很长时间,这不行。
但还是十分感谢



[rgb红绿蓝
2006-10-28 03:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
rgb82754670
初级用户

rgb红绿蓝


积分 126
发帖 42
注册 2006-7-22
状态 离线
『第 25 楼』:  



  Quote:
Originally posted by NaturalJ0 at 2006-10-27 23:32:
[code]
@echo off
if %1#==# goto END
@ctty nul
command /f /c if not exist f:\nul echo not connected>state1.flg
command /f /c if not exist f:\%1.wbf echo file not exist>state2.flg
@ctty c ...

22楼的兄弟,你的我测试后结果:

如果881后没跟文件回车,显示空白一行
如果881 dwc07zwb.wbf(f:\存在这个文件)则ok
如果881 dwc07zw.wbf(f:\不存在这个文件)则显示not connected(但我网络是连接的

另外我不知道command/f是什么意思

[ Last edited by rgb82754670 on 2006-10-28 at 04:19 AM ]

附件 1: SCREEN03.jpg (2006-10-28 04:17, 15.45 K, 下载附件所需积分 1 点 ,下载次数: 2)




[rgb红绿蓝
2006-10-28 04:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 26 楼』:  



  Quote:
Originally posted by rgb82754670 at 2006-10-28 03:57:
20楼的仁兄,dir f:\ 我有上万个文件,光显示都要很长时间,这不行。
但还是十分感谢

 
  呵呵,不知道你有那么多文件啊。

  如果你知道F:\盘有一个文件(new.wbf)的话,可以改成dir /b F:\new.wbf,这样速度应该会提高一点。
  
  另外,我想知道我那个方法最后到底成功了没有?达到最终的目的了没有?
 

2006-10-28 04:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 27 楼』:  

如果没有连接,难道不会出现 A F R 选择?
dir f:\ (如果没有连接会提示什么?)

2006-10-28 07:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 28 楼』:  



  Quote:
Originally posted by NaturalJ0 at 2006-10-28 07:56:
如果没有连接,难道不会出现 A F R 选择?
dir f:\ (如果没有连接会提示什么?)


  什么A F R选择??可以说清楚一点否?


2006-10-28 10:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 29 楼』:  

CDR101: Not ready reading drive E
Abort, Retry, Fail?              

比如这种,看来是我想错了。

2006-10-28 12:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
rgb82754670
初级用户

rgb红绿蓝


积分 126
发帖 42
注册 2006-7-22
状态 离线
『第 30 楼』:  20楼的仁兄我改成如下:881.bat,测试结果看附图

dir f:\1.wbf
if errorlevel 1 goto fail
if errerlevel 0 goto true

:true
if not exist F:\%1.wbf goto yes
copy F:\%1.wbf .
echo One file(s) copied successfully.
pause
ck2 %1.wbf

:fail
echo The Windows XP has not on OR the Network has disconnected.
pause
goto eof

:yes
echo The Windows XP has not exist the file you want.
pause
goto eof

:eof

测试结果看附图(网络正常,最后都没有执行ck2 1%)

[ Last edited by rgb82754670 on 2006-10-29 at 12:40 AM ]

附件 1: SCREEN04.jpg (2006-10-29 00:38, 13.33 K, 下载附件所需积分 1 点 ,下载次数: 2)


附件 2: SCREEN05.jpg (2006-10-29 00:38, 13.12 K, 下载附件所需积分 1 点 ,下载次数: 2)




[rgb红绿蓝
2006-10-29 00:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: