中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 23:01
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]在4DOS下下面的移动哪里出了问题了? 查看 951 回复 13
楼 主 [已结]在4DOS下下面的移动哪里出了问题了? 发表于 2008-11-27 12:10 ·  中国 广东 佛山 电信
初级用户
★★
积分 178
发帖 82
注册 2006-05-12 23:53
20年会员
UID 55419
状态 离线
最后的答案是IFS与GHOST的冲突,跟代码无关。


在4DOS 下
下面的代码哪里使得得不到想要的结果呢?
set rnd=%@random
for %%b in (w v u t s r q p o n m l k j i h g f e d c) do if exist %%b:\backup.gho ren %%b:\backup.gho back%rnd%.gho

ghost -clone,mode=pdump,src=1:1,dst=1:2:\backup.gho -sure -cns -z2 -fx -nousb
if errorlevel 1 goto exit
goto yidong


:yidong
cls
for %%t in (w v u t s r q p o n m l k j i h g f e d c) do if exist %%t:\backup.gho (
md /s %%t:\backup
move %%t:\backup.gho %%t:\backup\backup.gho
)

:exit


想要的结果是:把新建的backup.gho移动到新建的目录下。

我经检查发现应该是上面的代码出错,我做过下面的测试:
在某盘上新建一个backup.gho,该盘没有backup这个文件夹、和有该文件夹都试了,把 goto yidong放到set rnd=%@random,也就跳过那个改名和新建gho,发现移动的那段代码是可行的,但是一旦使用了上面的代码后就是可以新建文件夹,但是文件却没有移动到该新建文件夹里面去。

[ Last edited by austion on 2008-11-27 at 20:40 ]
2 发表于 2008-11-27 12:18 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
md命令为何要加/s开关呢?
3 发表于 2008-11-27 12:19 ·  中国 广东 佛山 电信
初级用户
★★
积分 178
发帖 82
注册 2006-05-12 23:53
20年会员
UID 55419
状态 离线
忘说了我使用的是4DOS,同时我刚使用GHOST32在XP下运行4DOS来单单试了下上面的代码发现是这段代码出问题。
4 Re 3楼 发表于 2008-11-27 12:21 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
建议在顶楼更新问题的完整背景
5 发表于 2008-11-27 12:23 ·  中国 广东 佛山 电信
初级用户
★★
积分 178
发帖 82
注册 2006-05-12 23:53
20年会员
UID 55419
状态 离线
在没开md命令为何要/s我也试了,所以也尝试一下开了/S行不行。
6 发表于 2008-11-27 12:28 ·  中国 广东 佛山 电信
初级用户
★★
积分 178
发帖 82
注册 2006-05-12 23:53
20年会员
UID 55419
状态 离线
7 发表于 2008-11-27 13:05 ·  中国 黑龙江 大兴安岭地区 联通
初级用户
★★
积分 190
发帖 101
注册 2008-11-23 14:58
17年会员
UID 131841
性别 男
状态 离线
我没试,但是看起来代码应该没错,楼上的图里,提示“无效路径”,明显多了个冒号,这个冒号怎么来的呢?不然的话换个办法,如果不用移动的办法,改用 COPY 加 DEL 怎么样呢?
8 发表于 2008-11-27 13:06 ·  中国 黑龙江 大兴安岭地区 联通
初级用户
★★
积分 190
发帖 101
注册 2008-11-23 14:58
17年会员
UID 131841
性别 男
状态 离线
再不行的话就把一个批处理劈成两个再试试。
9 发表于 2008-11-27 13:15 ·  中国 广东 佛山 电信
初级用户
★★
积分 178
发帖 82
注册 2006-05-12 23:53
20年会员
UID 55419
状态 离线
不好意思,我上的那幅图里的内容是我当时的一个变量符号错误,但是我使用了相同的代码在XP上运行的4DOS和在纯4DOS下运行,
在XP上运行4DOS可以,但是运行纯4DOS时就不行了。
现在我怀疑是不是我的NTFS的加载驱动出来问题,它与4DOS 有点不太兼容?但是如果我直接的在4DOS下运行
for %%t in (w v u t s r q p o n m l k j i h g f e d c) do if exist %%t:\backup.gho (
md /s %%t:\backup
move %%t:\backup.gho %%t:\backup\backup.gho
)
却没问题,但是一旦整个批处理一起运行就出问题了。

[ Last edited by austion on 2008-11-27 at 13:52 ]
10 发表于 2008-11-27 13:54 ·  中国 广东 佛山 电信
初级用户
★★
积分 178
发帖 82
注册 2006-05-12 23:53
20年会员
UID 55419
状态 离线
谁有可以很好的在4DOS下运行的NTFS驱动啊?
11 发表于 2008-11-27 16:43 ·  中国 黑龙江 大兴安岭地区 联通
初级用户
★★
积分 190
发帖 101
注册 2008-11-23 14:58
17年会员
UID 131841
性别 男
状态 离线
这样看的话应该是运行环境的问题,尤其是加载的驱动,一样一样的试吧。
12 发表于 2008-11-27 19:31 ·  中国 广东 佛山 电信
初级用户
★★
积分 178
发帖 82
注册 2006-05-12 23:53
20年会员
UID 55419
状态 离线
我看也有可能是NTFS的驱动了,发现我使用NTFS4DOS这个的时候批处理删除东西的时候进入WIN是不用检查硬盘的,但是使用4DOS加载IFS的时候基本每次进入WIN都要检查硬盘。
我的IFS驱动比较久吧,是05年的,刚在一个版主那下了个,不过加载的时候出错了,我还不知道怎么加载那新的呢。
13 发表于 2008-11-27 19:49 ·  中国 上海 杨浦区 电信
金牌会员
★★★★
积分 4,639
发帖 2,239
注册 2005-01-30 00:00
21年会员
UID 35785
性别 男
状态 离线
如果不是特殊需要,分区最好不要用 NTFS ,尤其是启动/系统盘,不然的话就是给自己找麻烦。NTFS 的情况就像 USB 盘一样,不像软盘是“放之四海而皆准”的。
14 发表于 2008-11-27 20:38 ·  中国 广东 佛山 电信
初级用户
★★
积分 178
发帖 82
注册 2006-05-12 23:53
20年会员
UID 55419
状态 离线
问题给找到了,原来是我的IFS和GHOST之间的矛盾。
当2个同时具有读写NTFS的软件一起运用时就会产生这样的情况:
如过先使用了IFS然后进入了GHOST的话,一旦对NTFS写操作,如果成功(非GHOST写入),那么将都不成功。
我现在是在使用GHOST前加上个卸载IFS的批处理,当运行完GHOST后就马上加载上IFS,这样就能跳过去了。

上次我的那个问题也找到了,原来是IFS写入问题,所以导致进入XP后要检查硬盘。

现在又有新的问题了,是哪个IFS对NTFS写入是不会导致进入XP要检查硬盘的。
论坛跳转: