中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]为什么在4dos下del文件后第二次入xp要检查硬盘?
作者:
标题: [已结]为什么在4dos下del文件后第二次入xp要检查硬盘? 上一主题 | 下一主题
austion
初级用户





积分 178
发帖 82
注册 2006-5-12
状态 离线
『楼 主』:  [已结]为什么在4dos下del文件后第二次入xp要检查硬盘?

问题已解,是IFS和GHOST之间的问题。


为什么在4dos下del文件后第二次进入xp都要检查硬盘?

首先我使用的是NTFS,
下面的一段代码运行在纯4DOS下:
for %%b in (c d e f g h i j k l m n o p q r s t u v w y z) do if exist %%b:\123.txt del %%b:\123.txt

上面的代码没什么出错,只是如果使用的是echo不是del 的话不会出问题,
在4dos下del文件后第二次进入xp都要检查硬盘?
这个是什么原因?这个是在使用del的时候出现的问题。

[ Last edited by austion on 2008-11-27 at 23:40 ]

2008-11-26 00:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Qtwdftxvt
初级用户




积分 190
发帖 101
注册 2008-11-23
状态 离线
『第 2 楼』:  

恐怕得研究一下 XP 是根据什么磁盘标志决定是否检测该磁盘的。

2008-11-26 00:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 3 楼』:  

你是 DOS 下加载 NTFS 文件系统的驱动再这么做的吗?这个和 4DOS 应该无关,4DOS 还不能做到直接写扇区操作。你这句命令不用 4DOS 也能完成,你在 COMMAND 下执行试试,看看会不会出现同样的现象。



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2008-11-26 01:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
austion
初级用户





积分 178
发帖 82
注册 2006-5-12
状态 离线
『第 4 楼』:  

我是在DOS 下加载NTFS文件系统驱动后再这么做的。
现在我转用4DOS了,那也该是在4DOS 下完成而不是再在COMMAND下完成了。
我以MOVE来操作的话倒没问题啊,我还想这个是这个DEL在FOR里面的问题,所以来问问。

2008-11-26 08:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复
austion
初级用户





积分 178
发帖 82
注册 2006-5-12
状态 离线
『第 5 楼』:  

现在奇怪的事情终于出来了,
只要稍微改一下上面的代码:
for %%b in (c d e f g h i j k l m n o p q r s t u v w y z) do if exist %%b:\123.txt del /f /q %%b:\123.txt
问题就消失了。
这下就奇怪了,只是增加了DEL的 /f /q 就没问题了。

2008-11-26 09:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
austion
初级用户





积分 178
发帖 82
注册 2006-5-12
状态 离线
『第 6 楼』:  

我某批处理文件代码如下:
set wait0 =.

for %%j in (e f g h) do (
echo wait0
set wait0=%wait0%.
for /f "delims=" %%i in ( 'dir /a /s /f /[s0,300k] %%j:\*.exe %%j:\*.com' ) do echo %%i >> 234.txt
)

上面的代码看上去没有错误,
但是我在xp下运行4DOS来实现这段代码的时候,第一次运行没问题,接着不退出4DOS的情况下再次运行该批处理的时候,问题就出现了,第二次开始的时候
SET WAIT0=.
却实效了?这次第一个显示的是5个.,当然我本来要的就是第一个显示的是一个.。

2008-11-26 09:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
austion
初级用户





积分 178
发帖 82
注册 2006-5-12
状态 离线
『第 7 楼』:  

我郁闷了,把:
set wait0 =.
变成
set wait0= .
问题就解决了。
这个是什么问题?

2008-11-26 09:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
austion
初级用户





积分 178
发帖 82
注册 2006-5-12
状态 离线
『第 8 楼』:  

4DOS里是不是不再需要输入doskey也能有doskey呢?

2008-11-26 10:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 9 楼』:  

要在 COMMAND 下执行一次,再加载一下 COMMAND 就可以了,试完后 exit 回到 4DOS ,或者 COMMAND/C 来临时执行以下。

4DOS 自身就有历史命令处理功能,而且远比 DOSKEY 强大,所以用了 4DOS 就不需要 DOSKEY 了。

具体批处理怎么写我没法帮你写,因为我不知道你的具体目的是什么,我只能看你其中的某句:
for /f "delims=" %%i in ( 'dir /a /s /f /[s0,300k] %%j:\*.exe %%j:\*.com' ) do echo %%i >> 234.txt
似乎是多此一举,这和直接
dir /a /s /f /[s0,300k] %%j:\*.exe %%j:\*.com >> 234.txt
没什么区别



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2008-11-26 13:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
austion
初级用户





积分 178
发帖 82
注册 2006-5-12
状态 离线
『第 10 楼』:  

如果把
echo %%i >> 234.txt
换成DEL就不一样了。

2008-11-26 14:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 11 楼』:  

如果要删除的话直接 del /s /f /[s0,300k] %%j:\*.exe %%j:\*.com 就可以了,为什么要搞得那么复杂?



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2008-11-26 14:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
austion
初级用户





积分 178
发帖 82
注册 2006-5-12
状态 离线
『第 12 楼』:  

原来DEL还有这么的用法的。

2008-11-26 16:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 13 楼』:  

注意我的原话:

  Quote:
这是一个参数,不是某个具体的命令,而且这个参数差不多可以在许多操作对象是文件为参数的 4DOS 命令中使用

http://www.cn-dos.net/forum/viewthread.php?tid=44071#pid307313



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2008-11-26 16:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 14 楼』:  

还可以再简单点:

del /s /f /[s0,300k] %%j:\*.exe;*.com



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2008-11-26 16:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: