中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [讨论]MSDOS中目录的直接移动 上一主题 | 下一主题
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『楼 主』:  [讨论]MSDOS中目录的直接移动


───────────────── 版务记录 ─────────────────
执行:Will Sort
操作:分割主题:《19952 - 如何在DOS下给非空文件夹重命名?》
说明:主题内讨论内容与方向有显著分歧
───────────────── 版务记录 ─────────────────


     很早就发现,MSDOS和Win9x的MOVE似乎有些“不务正业”。对目录的操作只能理解为重命名,而要移动目录必须指定目录中的文件进行全体移动。而实际上,目录的移动本质上仍然只是文件目录表的更动,比如CMD中的MOVE就可以实现直接移动。不知兄是否可以解我之惑?进而提供一款可以在DOS下直接移动目录的命令行工具。

[ Last edited by willsort on 2006-4-8 at 23:13 ]



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-4-7 13:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





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

回 笑天:

我可以理解你的用意,但如果省事的话为什么要直接移动呢?
传统 DOS 的 MOVE 的局限性就在于只能处理同一层的目录,如果是不同层或是不同盘之间的移动则只能是对文件进行操作。而 4DOS 可以实现上述的任何操作,而且可以带子目录操作。



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
2006-4-7 14:09
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 3 楼』:  

willsort:

印象中其实MOVE命令在Win9x的DOS窗口下也是可以直接移动目录的,虽然在纯DOS下只能对目录重命名。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2006-4-8 02:49
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 4 楼』:  

Re Wengier:

      这确实是我的记忆出了问题,在此更正并道歉,Win98的MOVE确可以直接移动文件夹。

Re DOSforever:

      我使用4dos7.50在msdos7.10下测试,结果发现其move仍然移动的是目录中的文件。比如以下测试它便无法通过:

md src
md dst
move src dst

      至于不同盘之间的move,那是另外一回事,即使在XP下它也是复制加删除的操作。



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-4-8 14:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





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

回 笑天:

哦,我明白你的意思了,你是想 move 象 NC 中的F6(rename/move)功能一样,对目录的操作就象对文件的操作一样。对吧?从你这个例子来看,你是想把 src 移到 dst 的目录下成为 dst 下的一个子目录,对吧?可以这样:
move /d src dst
回答 y 就可以了。



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
2006-4-8 17:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 6 楼』:  

Re DOSforever:

      刚测试过 move /d src dst,提示仍然是 File not found "c:\test\src\*.*" 。在MSDOS6.22和Win98Se下使用move@4dos亦同。另外,4dos似乎不认同msdos7.10这个版本,因而限制了一部分功能,比如命令的命令行文档。



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-4-8 22:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





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

呵呵,确实是"File not found",但你可以进去看一下,dst目录下已经有了src子目录了。只所以提示"File not found"那是因为你的src目录本来是空的,所以move它认为没有文件可以移动。

另外,不知你所说的“命令的命令行文档”是指什么,少了哪部分功能?



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
2006-4-8 22:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 8 楼』:  

Re DOSforever:

      我未观察到src和dst有何表观上的变化。而即使src确已移动到dst目录中,File not found仍然指示出4dos意图移动目录中的文件。而这本是没有必要的,目录的移动,只需要更改目录本身的FDT,而不应该更改其下得文件和子目录的FDT。

      命令行文档即指4dos命令的帮助信息,比如在msdos7.10/NTs与msdos6.xx/win9x下move /?结果是不同的;其他限制未作观察,无法确定,但依照4dos在NTs下的安装提示来看,确实存在某些功能上的限制。



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-4-8 23:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 9 楼』:  

willsort:

我把在JPSoft网站上下载的4DOS 7.50完整版(已可免费下载,无需注册)在MS-DOS 6.0/MS-DOS 7.1/Win98SE/WinXP下都试过了,发现在MS-DOS 6.0/MS-DOS 7.1/WinXP下直接解压使用,或者在Win98SE下进行安装后使用,运行MOVE /?时却并没发现有任何不同的结果,都是显示其帮助信息。因此看起来似乎并不存在这种功能限制。如有不同,可能与其它配置有关。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2006-4-9 02:02
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
wl00560
银牌会员





积分 1384
发帖 709
注册 2005-10-29
状态 离线
『第 10 楼』:  

4dos当然认识dos710了,不过楼主的问题,也是曾困惑我很久的问题。后来懒得再钻研了,干脆用nc得了

2006-4-9 14:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 11 楼』:  

Re Wengier:

      已经证实,在运行4dos.com时,如果没有获得4dos.hlp的支持,在使用move /?之类的命令行时,将无法显示帮助文档。因此,不存在4DOS与MSDOS7.10的兼容性问题。

      另外,将Win98下的MOVE移植到MSDOS7.10下使用,结果仍然无法直接移动目录,在Win98的实DOS模式下亦然,据此推测目录的直接移动显然受到Windows的支持。



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-4-9 18:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





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

???
我看了有点糊涂了。可能我没有确切的理解你的“直接”的用意。我一开始的理解是,你可能是指文件在物理上的移动。所以我说“如果省事的话为什么要直接移动呢?”现在看来你应该是指 move 命令“直接”以目录为操作对象,而不是以目录中的文件为操作对象。就象我前面说的 NC 的F6功能一样。如果是这样的,我认为这没啥好讨论的,因为传统 DOS 下的 move 就是这个特性。实际上这个特性也是继承了 DOS 命令操作对象的传统特性,也就是假定一个文件名是一个文件的话,那就是对这个文件进行操作,如果是一个目录的话那就是对这个目录中的文件进行操作。dir、del、copy 都是如此。关于这一点我想你我都明白。当初 DOS 增加 move 这个命令也同样要保持这特性,所以就没有你所想的“直接”(其实,一开始我们用 move 这个命令的时候都犯过这样想当然的错误:奇怪了,怎么 move 不能移动目录啊,要移也只能在同一层之间,这算什么 move ,不就是 ren 嘛。呵呵)实际上你现在的困惑(我认为)是由于 Windows 用久了,不知不觉“中毒”太深了的原因。把 Windows 的一些操作习惯套到 DOS 上去了。(呵呵,其实我也觉得Windows用久了,自己的脑子变笨了)

有一点我前面说漏了,应该是这样: move /d src dst\src
这样就可以在dst下生成src子目录了,不过源src目录仍然存在,原因还是我上述所说的 DOS 操作对象的特性。

  Quote:
提供一款可以在DOS下直接移动目录的命令行工具。

我看恐怕没有。因为大家都要保持 DOS 的这个操作特性,除非现在有人看到你笑天的意见,重新开发一个


4DOS.COM 确实在不同的环境下所给出的帮助提示不一样,但这不是指每个命令单独的帮助提示,而是“问号”帮助提示,即"?",类似与 MS-DOS 的 FASTHELP 。在纯 DOS 环境下比在 MS-DOS 7.X 和 Win9x 的 DOSBOX 下少了 lock 和 unlock 两个命令。

  Quote:
但依照4dos在NTs下的安装提示来看,确实存在某些功能上的限制。

我没有在 NTs 环境下装/用过 4DOS。看来从你的实践来看证实了我的猜测
http://www.cn-dos.net/forum/viewthread.php?tid=15228&page=1
我在10楼的中的一段话



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
2006-4-10 23:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
6622186
高级用户





积分 894
发帖 411
注册 2007-2-17
状态 离线
『第 13 楼』:  

问这话就是无知, 那你就用 "剪切" 好了.



@set c=     不知则觉多,知则觉少,越知越多,便觉越来越少.        --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


2007-10-4 00:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: