中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 5K XCOPY 工具,支援長檔名、多來源、檔案列表等功能
« [1] [2] [3] [4] [5] »
作者:
标题: 5K XCOPY 工具,支援長檔名、多來源、檔案列表等功能 上一主题 | 下一主题
silveregg
初级用户





积分 66
发帖 24
注册 2007-3-15
状态 离线
『第 31 楼』:  



  Quote:
Originally posted by hack38 at 2007-4-17 05:35 PM:
一楼里面只有几个而已哦~~~

一樓有把總共26個參數都列出來喔

2007-4-18 08:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
silveregg
初级用户





积分 66
发帖 24
注册 2007-3-15
状态 离线
『第 32 楼』:  

1.62 版修正一個小問題,並加入了中文的說明檔
說明檔內容如下:

  Quote:
-----------------------------------------------
XCP v1.62 Copyright (C) SilverEgg 2007 說明文件
-----------------------------------------------

一、命令列與參數說明

XCP 來源 [來源 ...] [@檔案列表] [目的] [參數]
    來源可有多個,可用萬用符,最後一個參數指定目的
    檔案列表格式為一個檔案一行,列表可有多個,內容可用萬用符
    若只有一個參數,則視其為來源,目的為當前目錄,同 DOS 的 COPY

    /S      複製子目錄
    /E      複製時包含空目錄(預設開啟)
    /T      建立樹狀構結而不複製檔案,可和 /E 並用
    /M      移動檔案(和 /S 並用可移動目錄)
    /J      若目的檔案已存在則結合檔案
    /Z      若目的檔案已存在則從中斷處繼續複製
    /D      指定目的為目錄
    /F      指定目的為檔案
    /A      只處理含有 ARCHIVE 屬性的來源檔案
    /U      只處理已存在於目的的檔案
    /H      複製時包括隱藏檔和系統檔(預設開啟)
    /O      複製成功後清除來源檔案的 ARCHIVE 屬性
    /K      複製屬性(預設開啟)
    /V      複製時開啟 DOS 內建的寫入檢驗
    /C      複製後逐一位元組比對是否相等
    /Q      複製時不顯示檔案名稱
    /B      複製時只顯示來源檔案
    /P      複製時顯示進度
    /X      測試模式,只顯示結果而不寫入磁碟
    /L      產生來源列表(不需指定目的)
    /Y      不詢問,直接覆寫已存在的檔案
    /I      不詢問,直接跳過已存在的檔案
    /R      複製時不跳過唯讀目的檔案(預設開啟)
    /G      複製時不檢查磁碟剩餘空間(可在 XP 下複製大檔案)
    /N      即使在有長檔名支援的環境下也不使用長檔名功能
    /W      將 @ 符號視為檔名的一部份,而非檔案列表


    1.  所有參數可用 +/- 來開啟關閉,如 /E- /H- 或 /-E /-H
        但通常只有四個預設開啟的參數: /E /H /K /R 需要加上 - 號

    2.  目的結尾為 \ 符號,暗指目的為目錄
        若無 /F 或 /D,且無法判斷目的為檔案或目錄時,會出現詢問

    3.  指定目的為目錄時,可自動建立不存在的目錄和子目錄
        如目的可為 1\2\3\4\ ,相應的目錄會自動建立

    4.  除了 DOS 原本的 "." 或 ".." (當前目錄、父目錄)以外
        可用 "..." 、 "...." 指定 N 層之前的目錄


二、重要用法說明

    1.  開頭加 @ 讀取檔案列表時,會自動忽略空格開頭的行
        所以可用 /L 產生列表並轉向至檔案 list 後,再用 @list 讀入

    2.  複製中可用 Ctrl + C 中斷,之後加上 /Z 參數可從中斷處繼續複製

    3.  傳統 XCOPY 中的 /M 開關,在 XCP 中應以 /A /O 代替


三、使用限制

    1. 複製時使用 /S 參數,子目錄的上限為 35 層

    2. 長檔名支援需在 Win9x/2K/XP 下或純 DOS 掛載 DOSLFN 或 LFNDOS


四、返回碼(ERRORLEVEL)

    0       複製成功
    1       無文件可複製
    2       Ctrl+C 或選取 Cancel 中斷操作
    4       命令行語法錯誤
    5       複製時讀寫發生錯誤
   -1       無參數或顯示說明


五、更新記錄

    1.62    不詢問是否覆蓋 DOS 裝置

    1.61    加強 "." 或 ".." (當前目錄、父目錄)的判別
            可用 "..." 、 "...." 等指定 N 層之前的目錄
            加入 LPTn 和 COMn 等 DOS 裝置的判別
            修正 /P 顯示百分比的問題,並且加強換行時的處理
            修正 Wengier 大提出的顯示問題

    1.6     新增顯示建立子目錄的個數
            /R 開關改為「處理唯讀檔案」,若關閉則 XCP 會跳過唯讀檔案
            處理子目錄的上限增加至 35 層
            對於唯讀檔案的覆寫,改成只會出現一次提問
            讓結合檔案時目的檔案的屬性保持不變
            加強錯誤訊息,更容易判斷命令列的問題所在
            修正檔案列表最後一行無換行符號時發生錯誤
            修正讀取檔案發生錯誤時,無錯誤訊息的 BUG
            修正處理 DOS 裝置名稱時發生的錯誤,感謝 Wengier 大提出
            修正某些錯誤的 ERRORLEVEL 返回值

    1.5     新增 /E /T /Z /A /H /O /P /X /Q 等參數
            判別常用的 DOS 裝置名稱
            加入可用 Ctrl + C 中斷程式

    1.41    修正 /V 開關死鎖問題
            修正 /U 開關建立空目錄問題

    1.4     新增 /U /T 參數
            使用 /T /L 時也會回報檔案個數

英文的就再說吧 XD

2007-4-18 13:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wang6610
银牌会员




积分 1246
发帖 488
注册 2003-11-11
状态 离线
『第 33 楼』:  简体readme.txt

简体readme.txt

[ Last edited by wang6610 on 2007-4-20 at 02:15 AM ]

附件 1: readme_chs.txt (2007-4-20 02:15, 3.15 K,下载次数: 54)
2007-4-18 21:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
cchessbd
高级用户





积分 525
发帖 222
注册 2006-8-28
状态 离线
『第 34 楼』:  

最新版本 xcp /?

/S           Copies directories and subdirectories.
/E           Copies directories and subdirectories, including empty ones.
好像 /E 的参数说明要改下,否则 /S还需要吗

2007-4-20 01:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


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



  Quote:
Originally posted by cchessbd at 2007-4-19 12:45 PM:
最新版本 xcp /?

/S           Copies directories and subdirectories.
/E           Copies directories and subdirectories, including empty ones.
好像 /E 的参数说明要改下,否则 /S还需要吗

我也早已注意到这个问题了。只是觉得大家心里都明白其真正的意思,所以也没好提出来。



Wengier - 新DOS时代

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

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

2007-4-20 02:19
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
silveregg
初级用户





积分 66
发帖 24
注册 2007-3-15
状态 离线
『第 36 楼』:  



  Quote:
Originally posted by cchessbd at 2007-4-19 12:45 PM:
最新版本 xcp /?

/S           Copies directories and subdirectories.
/E           Copies directories and subdirectories, including empty ones.
好像 /E 的参数说明要改下,否则 /S还需要吗

這是為了和傳統的 xcopy 相容
這兩句說明也是從傳統的 xcopy 抄來的

對 xcp 而言,/s 是開啟子目錄複製,/e 是處理子目錄時包括空目錄
所以 xcp 的 /s 和 /e 都是開關!

但只開啟 /e 而不開啟 /s 顯然完全無用,所以當程式遇到 /e 參數(不論+/-),都會自動開啟 /s
同理, /t 也一樣會自動開啟 /s
而預設的情況下,/s 是關閉的,/e 是開啟的

所以不論單用 /s ,或照者傳統 xcopy 的習慣用 /s /e, 或單用 /e,都是複製子目錄,包括空目錄
而特別指明 /s /e-,或是直接用 /e-,則是複製子目錄,不包括空目錄

當然,說不需要 /s 也是沒錯....因為用 /e 或 /e- 就可以包括所有情況
但畢竟 /s 還是最習慣的用法,所以也保留了下來

2007-4-20 02:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


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



  Quote:
Originally posted by silveregg at 2007-4-19 01:49 PM:


這是為了和傳統的 xcopy 相容
這兩句說明也是從傳統的 xcopy 抄來的

對 xcp 而言,/s 是開啟子目錄複製,/e 是處理子目錄時包括空目錄
所以 xcp 的 ...

这些说的都没错。其实本来我并没准备说这个问题的,不过既然cchessbd把它提出来了,我也就说明一下吧。

从我的测试结果来看,目前的说明或设定确实有可能使部分人(如cchessbd)产生一种/E参数存在问题的感觉,原因如下:

XCP/?会显示“By default, /E /H /K and /R are turned on”,即预设情况下/E等开关是开启的,通常的理解就是如果在命令行下不去手工指定/E(不管是+还是-)的话那么就相当于自动指定了/E参数。换句话说,按照这种理解,下面的用法应该等同:

XCP A B
XCP A B /E

但是经过测试证明两者的作用并不一定相同。如果源目录A下有子目录的话,那么如果用前者则这些子目录不会被复制,而如果用后者则它们会被复制。所以,目前有关/E参数的说明或设定确有可能使部分人造成误解。



Wengier - 新DOS时代

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

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

2007-4-20 03:58
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
cchessbd
高级用户





积分 525
发帖 222
注册 2006-8-28
状态 离线
『第 38 楼』:  

Please show your switch exactly.

I'm using "xcp.com" but not "xcopy.com".

2007-4-20 04:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
silveregg
初级用户





积分 66
发帖 24
注册 2007-3-15
状态 离线
『第 39 楼』:  

Wengier 和 cchessbd 說的沒錯
所以 /e 的說明應該指明這只是一個預設開啟的開關,並且只和 /s 併用時有效
不過這樣子如何用英文簡短的表達呢,麻煩大家一起幫忙想想
因為我希望說明畫面可以簡潔一點,一個參數一行
不要像 xcopy 都還要換行才寫的完

一人計短,兩人計長~
集思廣義一下

2007-4-20 06:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cchessbd
高级用户





积分 525
发帖 222
注册 2006-8-28
状态 离线
『第 40 楼』:  

/e include empty directory 在复制某目录中的文件(*.*)或目录(有/s)才起效
/s include sub directory 包括子目录

这样就易于理解了
把帮助分屏显示;要不就精简一下,一屏显示完,这倒是我希望的。

嘿嘿,谢谢了!

2007-4-20 06:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


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



  Quote:
Originally posted by silveregg at 2007-4-19 05:43 PM:
Wengier 和 cchessbd 說的沒錯
所以 /e 的說明應該指明這只是一個預設開啟的開關,並且只和 /s 併用時有效
不過這樣子如何用英文簡短的表達呢,麻煩大 ...

以下两种方案也许可行:

方案1:采用XCOPY的处理方法,即/S用于复制除空目录外的所有目录,而/E用于复制包括空目录的所有目录。此时/S /E与单独/E等同。预设情况下两者均关闭。

方案2:将/E的说明改为类似"When copying directories, includes empty ones",即把/E当作一个flag或switch,只在"copy directories"时有效,而非一个像上面那样的独立用途的参数。这个flag预设为开启(和现在一样,可以用/-E或/-E来关闭),但它只有当命令行中存在/S或/T参数时才能起到作用。

另外,建议不强制开关之间带有空格(类似XCOPY),即支持例如/P/X这样的用法,而不一定要在中间加空格(如:/P /X)。目前不加空格的话后者会被忽略。



Wengier - 新DOS时代

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

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

2007-4-20 18:56
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
game
初级用户





积分 47
发帖 24
注册 2007-2-19
状态 离线
『第 42 楼』:  

我正需要这个,看看是什么

2007-4-21 09:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bc12060101
银牌会员





积分 1455
发帖 712
注册 2006-1-20
状态 离线
『第 43 楼』:  

很不错的软件!顶一下

2007-5-1 12:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
johnsonlam
银牌会员

阿林


积分 1410
发帖 497
注册 2004-6-28
来自 九龍,香港
状态 离线
『第 44 楼』:  



  Quote:
Originally posted by Wengier at 2007-4-20 06:56 PM:
方案1:采用XCOPY的处理方法,即/S用于复制除空目录外的所有目录,而/E用于复制包括空目录的所有目录。此时/S /E与单独/E等同。预设情况下两者均关闭。

我 個 人 覺 得 不 必 拘 泥 MS-DOS 做 法 , 但 在 說 明 中 或 help 內 要 寫 很 清 楚 和 加 上 示 範 。

我 偏 向 選 擇 『 最 安 全 』的 用 法 , 在 copy 程 序 中 『 所 有 都 抄 』 就 應 該 是 最 好 的 , 萬 一 錯 了 、 多 抄 了 不 要 的 , 稍 後 刪 掉 就 好 。

/E 則 可 以 是 忽 略 空 目 錄 , 這 樣 做 好 處 是 默 認 時 不 用 加 許 多 參 數 , 壞 處 是 放 棄 MS-DOS 一 貫 作 風 。

  Quote:
方案2:将/E的说明改为类似"When copying directories, includes empty ones",即把/E当作一个flag或switch,只在"copy directories"时有效,而非一个像上面那样的独立用途的参数。这个flag预设为开启(和现在一样,可以用/-E或/-E来关闭),但它只有当命令行中存在/S或/T参数时才能起到作用。

個 人 覺 得 /-e 其 實 有 點 混 淆 , 容 易 誤 導 用 戶 。

默 認 應 該 選 用 最 普 及 或 最 安 全 的 用 法 , 參 數 是 應 付 特 殊 需 要 , 這 樣 對 大 部 份 用 戶 最 方 便 。

還 有 , 建 議 採 用 環 境 變 數 , 例 如 :

set xcp=/s /d /y




我 的 網 站 - http://optimizr.dyndns.org
2007-5-4 09:46
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


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

今天注意到解决了以上问题的1.63版已经在顶楼推出了,只是由于一直未看到有正式的宣布所以之前没有发现。顺便说一下,现在DOSLFN已经有了0.40f测试版,可以将CJK代码页放到XMS中减少low memory占用,所以配合起来用更方便了。



Wengier - 新DOS时代

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

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

2007-5-14 02:54
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
« [1] [2] [3] [4] [5] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: