中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-02 15:01
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » dos6.22机上做个拷XP机中指定文件的批处理 查看 3,487 回复 30
楼 主 dos6.22机上做个拷XP机中指定文件的批处理 发表于 2006-10-21 04:10 ·  中国 浙江 杭州 电信
初级用户
rgb红绿蓝
积分 126
发帖 42
注册 2006-07-22 01:44
19年会员
UID 59003
性别 男
状态 离线
菜鸟级问题,请高手帮忙为盼,谢谢

在MS-DOS6.22下使用MSCLIENT3.0,NETBUI协议与XP机联网成功。
映射XP机的D:\CC网络盘为F:

想在DOS机上做个CC.BAT,

DOS机上键入CC空格123回车,能把F:\123.WBF文件拷到DOS机当前位置,

如果XP机没开或网络断开则提示XP机没开或网络断开,并按任意建返回DOS;

如果XP机上没有123.WBF则提示网络上没有此文件,并按任意建返回DOS;

如果拷贝成功则显示成功并按任意建继续执行DD空格123.WBF(DD是一个EXE文件)
cc.bat
@echo off
rem 如何检测xp机
copy f:\%1.wbf
[rgb红绿蓝
2 发表于 2006-10-21 07:25 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线

@echo off
rem 如何检测xp机...
dir F:\>nul && goto thing || (echo XP机没有开机或者网络断开了...&goto :eof)
if not exist F:\123.WBF (
echo 网络上没有此文件...& pause &goto :eof
)
:thing
copy F:\%1.Wbf %1_.wbf
:eof

  
  代码未测试,有问题请跟帖讨论...
3 发表于 2006-10-22 09:48 ·  中国 浙江 杭州 萧山区 电信
初级用户
rgb红绿蓝
积分 126
发帖 42
注册 2006-07-22 01:44
19年会员
UID 59003
性别 男
状态 离线
dir F:\>nul && goto thing || (echo XP机没有开机或者网络断开了...&goto :eof)
此句是说显示f:\的内容到nul,如果出错将执行下一行判断f:\1%.wbf,如果没出错继续执行:thing如出错显示XP机没有开机或者网络断开了...好像这理解不通??

不知道这里的()与下面的()是什么作用,因为是菜鸟级,请不吝赐教。


我记得以下对吗?

&&它在从前往后依次执行被它连接的几个命令时会自动判断是否有某个命令执行出错,一旦发现出错后将不继续执行后面剩下的命令。

||在执行多条命令时,当遇到一个执行正确的命令就退出此命令组合,不再继续执行下面的命令。

&的作用是用来连接n个DOS命令,并把这些命令按顺序执行,而不管是否有命令执行失败。
[rgb红绿蓝
4 发表于 2006-10-22 10:00 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线

  不知道这位兄弟测试这段代码了没有?如果有什么问题,可以继续发帖来讨论。欢迎大家一起来讨论。
5 发表于 2006-10-22 13:47 ·  中国 山西 阳泉 联通
新手上路
积分 17
发帖 11
注册 2006-10-22 13:10
19年会员
UID 67721
性别 男
状态 离线
要执行命令 && 成功 || 不成功

在MS-DOS6.22下不能实现吧。

[ Last edited by gxfc on 2006-10-22 at 13:54 ]
6 发表于 2006-10-22 13:57 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线

  怎么不能实现?可以说明一下原因么?
7 测试结果 发表于 2006-10-23 01:43 ·  中国 浙江 杭州 电信
初级用户
rgb红绿蓝
积分 126
发帖 42
注册 2006-07-22 01:44
19年会员
UID 59003
性别 男
状态 离线
注:红色文字是测试以后我加的
@echo off
rem 如何检测xp机...
dir F:\>nul && goto thing || (echo XP机没有开机或者网络断开了...&goto :eof) rem dos6.22提示语法错误syntax error
if not exist F:\%1.WBF (
echo 网络上没有此文件...& pause &goto :eof
) rem 因为这)dos6.22提示bad command or file name
:thing
copy F:\%1.Wbf /y
:eof
把上面存为881.bat
dos6.22下测试结果:
1。881 zxy107zw回车;如果网络正常并且f:\zxy107zw.wbf文件有则显示
syntax error
几个乱码(因为没有中文系统)...&pause &goto :eof
bad command or file name
1 file(s) copied

2。881 zxy107z回车;如果网络正常并且f:\zxy107z.wbf文件没有则显示
syntax error
bad command or file name
几个乱码(因为没有中文系统)...&pause &goto :eof
bad command or file name
file not found -f:\zxy107z.wbf
0file(s) copied

3。881回车;如果网络正常则显示
syntax error
bad command or file name
几个乱码(因为没有中文系统)...&pause &goto :eof
bad command or file name
path not found
4.881 zxy107zw回车;如果网络断开则显示
syntax error
bad command or file name
几个乱码(因为没有中文系统)...&pause &goto :eof
bad command or file name
extended error 53
5.881回车;如果网络断开则显示
syntax error
bad command or file name
几个乱码(因为没有中文系统)...&pause &goto :eof
bad command or file name
path not found

[ Last edited by rgb82754670 on 2006-10-23 at 01:55 ]
[rgb红绿蓝
8 发表于 2006-10-23 05:35 ·  中国 浙江 杭州 电信
初级用户
rgb红绿蓝
积分 126
发帖 42
注册 2006-07-22 01:44
19年会员
UID 59003
性别 男
状态 离线
请高手帮我看看,错在哪?(dos6.22系统)
不管我881后的文件在不在都会执行ck81.bat为什么?
881.bat内容如下:
@echo off
if exist F:\%1.WBF goto _copy
else goto end
:_copy
copy F:\%1.Wbf /y
ck81.bat 1%.wbf
:end
echo not files

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

[ Last edited by rgb82754670 on 2006-10-23 at 05:41 ]
[rgb红绿蓝
9 发表于 2006-10-23 05:41 ·  中国 浙江 舟山 普陀区 电信
新手上路
积分 4
发帖 2
注册 2006-10-22 08:52
19年会员
UID 67672
性别 男
状态 离线
呵呵都是高手呀
10 发表于 2006-10-23 06:15 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线


@echo off
if exist "%~f1" (
copy "%~f1" filename.%~x1
start "" ck81.bat
start "" "%~f1"
) else (
echo %1不存在
)
exit


  格式为881.bat zxy107zw.wbf,注意要带扩展名,复制之后的文件名为filename.wbf的形式,如果还有问题,再跟帖讨论。本人测试通过……
11 发表于 2006-10-23 07:56 ·  中国 浙江 杭州 萧山区 电信
初级用户
rgb红绿蓝
积分 126
发帖 42
注册 2006-07-22 01:44
19年会员
UID 59003
性别 男
状态 离线
首先感谢lxmxn大力帮助,
请问你是哪个系统下测试通过,
我要的是DOS6.22下的批处理。
[rgb红绿蓝
12 发表于 2006-10-23 08:00 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线

Re:rgb82754670
  
  我的系统是:Windows XP sp2,cmd.exe命令提示符下测试通过。
  
  我想也应该可以用在DOS下吧……
13 发表于 2006-10-23 08:18 ·  中国 浙江 杭州 萧山区 电信
初级用户
rgb红绿蓝
积分 126
发帖 42
注册 2006-07-22 01:44
19年会员
UID 59003
性别 男
状态 离线
lxmxn兄,看过7楼了吗,这是我dos6.22下测试的结果,有些批处理命令不能用
[rgb红绿蓝
14 发表于 2006-10-23 08:55 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
DOS 6.22 不支持 || && () 等。所以现在批处理分两种,一个是 MS-DOS Batch一种是 NT Batch。lxmxn的批处理不错但是要知道,纯DOS的批处理比XP下的艰苦n倍…………往日不堪回首~~

至于楼主的批处理估计需要多次 if errorlevel 才能成功。

[ Last edited by electronixtar on 2006-10-23 at 08:59 ]

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
15 发表于 2006-10-23 10:18 ·  中国 浙江 杭州 萧山区 电信
初级用户
rgb红绿蓝
积分 126
发帖 42
注册 2006-07-22 01:44
19年会员
UID 59003
性别 男
状态 离线
electronixtar大虾,就伸手帮一下愚弟,怎么个多次 if errorlevel; 先谢了。
[rgb红绿蓝
论坛跳转: