中国DOS联盟论坛

中国DOS联盟

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

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

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





积分 66
发帖 24
注册 2007-3-15
状态 离线
『第 31 楼』:   使用 LLM 解释/回答一下

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

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


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





积分 66
发帖 24
注册 2007-3-15
状态 离线
『第 32 楼』:   使用 LLM 解释/回答一下

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


-----------------------------------------------
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 使用 LLM 解释/回答一下

简体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 KiB,下载次数: 54)
2007-4-18 21:10
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
cchessbd
高级用户





积分 525
发帖 222
注册 2006-8-28
状态 离线
『第 34 楼』:   使用 LLM 解释/回答一下

最新版本 xcp /?

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


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

“新DOS时代”站长


积分 27736
发帖 10521
注册 2002-10-9
状态 离线
『第 35 楼』:   使用 LLM 解释/回答一下

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 楼』:   使用 LLM 解释/回答一下

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时代”站长


积分 27736
发帖 10521
注册 2002-10-9
状态 离线
『第 37 楼』:   使用 LLM 解释/回答一下

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 楼』:   使用 LLM 解释/回答一下

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 楼』:   使用 LLM 解释/回答一下

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

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


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





积分 525
发帖 222
注册 2006-8-28
状态 离线
『第 40 楼』:   使用 LLM 解释/回答一下

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

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

嘿嘿,谢谢了!


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

“新DOS时代”站长


积分 27736
发帖 10521
注册 2002-10-9
状态 离线
『第 41 楼』:   使用 LLM 解释/回答一下

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 楼』:   使用 LLM 解释/回答一下

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


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





积分 1455
发帖 712
注册 2006-1-20
状态 离线
『第 43 楼』:   使用 LLM 解释/回答一下

很不错的软件!顶一下


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

阿林


积分 1410
发帖 497
注册 2004-6-28
来自 九龍,香港
状态 离线
『第 44 楼』:   使用 LLM 解释/回答一下


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 一 貫 作 風 。


方案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时代”站长


积分 27736
发帖 10521
注册 2002-10-9
状态 离线
『第 45 楼』:   使用 LLM 解释/回答一下

今天注意到解决了以上问题的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)  编辑帖子  回复  引用回复

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


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



论坛跳转: