Board logo

标题: PKUNZIP 不能正确解压长文件名的文件 [打印本页]

作者: sudaibin     时间: 2008-8-18 20:45    标题: PKUNZIP 不能正确解压长文件名的文件
比如zip 里面有一个文件是 123456789.exe 而解压出来就变成了 12345678.exe 了,请问有解决办法吗?

作者: HAT     时间: 2008-8-18 20:50
GNU for Win32 的unzip.exe不存在这个问题
unzip.exe
http://bbs.bathome.cn/attachment.php?aid=223

作者: sudaibin     时间: 2008-8-18 21:04
有 unzip 的相关命令说明吗?

作者: HAT     时间: 2008-8-18 21:13
C:\Test>unzip --help
UnZip 5.42 of 14 January 2001, by Info-ZIP. Maintained by C. Spieler. Send
bug reports to the authors at Zip-Bugs@lists.wku.edu; see README for details.

Usage: unzip ] file

    Default action is to extract files in list, except those in xlist, to exdir;
    file may be a wildcard. -Z => ZipInfo mode ("unzip -Z" for usage).

    -p extract files to pipe, no messages -l list files (short format)
    -f freshen existing files, create none -t test compressed archive data
    -u update files, create if necessary -z display archive comment
    -x exclude files that follow (in xlist) -d extract files into exdir

    modifiers: -q quiet mode (-qq => quieter)
    -n never overwrite existing files -a auto-convert any text files
    -o overwrite files WITHOUT prompting -aa treat ALL files as text
    -j junk paths (do not make directories) -v be verbose/print version info
    -C match filenames case-insensitively -L make (some) names lowercase
    -$ label removables (-$$ => fixed disks) -V retain VMS version numbers
    -X restore ACLs (-XX => use privileges) -s spaces in filenames => '_'
    -M pipe through "more" pager
    Examples (see unzip.txt for more info):
    unzip data1 -x joe => extract all files except joe from zipfile data1.zip
    unzip -fo foo ReadMe => quietly replace existing ReadMe if archive file newer

作者: sudaibin     时间: 2008-8-18 22:06
用了unzip就不能解压了 麻烦 NAT 帮我看看哪错了?
@echo off
for %%a in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do if exist %%a:\ntldr if exist %%a:\windows\explorer.exe set sysdrive=%%a:
if #%sysdrive%==# goto startxp
inifile %sysdrive%\boot.ini [boot loader] timeout>timeout.bat
call timeout.bat
del timeout.bat
if #%timeout%==# goto startxp
if #%timeout%==#33 pause
for %%a in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do if exist %%a:\nbmscl~1\fuckdog\fuckdog.zip set fuckdog=%%a:\nbmscl~1\fuckdog
if #%fuckdog%==# goto startxp
if not exist %fuckdog%\fuckdog.zip goto startxp
unzip -d -o %fuckdog%\fuckdog.zip %sysdrive%\
for %%a in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do if exist %%a:\test.txt set test=%%a:\
if #%fuckdog%==# goto startxp
if not exist %fuckdog%\e.zip goto startxp
unzip -d -o %fuckdog%\e.zip %test%
:startxp
grub.exe --config-file=find --set-root /xpldr;chainloader /xpldr

作者: sudaibin     时间: 2008-8-18 22:07
用PKUNZIP 解压是正常的 是不是 还缺少什么参数?

作者: HAT     时间: 2008-8-18 22:16
把@echo off删除
在unzip命令下面加一句
pause
看看结果为什么出错

作者: sudaibin     时间: 2008-8-18 22:52
a:\>unzip -d -o f:\nbmscl~1\fuckdog\e.zip f:\this program cannot be run in dos mode

这样提示的 不能在DOS下执行此计划?

作者: HAT     时间: 2008-8-18 23:04
我没有纯DOS环境,无法测试unzip.exe是否支持纯DOS

作者: sudaibin     时间: 2008-8-18 23:09
除了 用unzip.exe 还有其他办法解决 纯DOS下不能解压长文件名的问题吗?

作者: Wengier     时间: 2008-8-18 23:36
PKUNZIP 可以在纯DOS下正确解压长文件名的文件,但前提是应使用2.50版,而且加载了DOSLFN。

作者: lianjiang2004     时间: 2008-8-19 11:09
GNU for Win32 的unzip.exe,dos下不能用是正常的。明明写了for win32。呵呵。

作者: knoppix7     时间: 2008-8-19 14:53
GNU for Win32
都For win32你还在DOS下用....

去找GNU For dos

作者: sudaibin     时间: 2008-8-20 00:59
需要先加载 DOSLFN再加载NTFSPro 吗?两个分别用什么命令来加载呢?加载了DOSLFN之前还需要加载NTFSDOS吗?

作者: Wengier     时间: 2008-8-20 02:40
先加载DOSLFN后加载NTFSPro,否则NTFS分区上的长文件名不可用。

作者: sudaibin     时间: 2008-8-20 18:31
还没搞懂 继续顶下····

作者: DOSforever     时间: 2008-9-12 18:36
Originally posted by Wengier at 2008-8-20 02:40:
先加载DOSLFN后加载NTFSPro,否则NTFS分区上的长文件名不可用。

呵呵,这个结论和想象中的不符哦。按照人们一般的逻辑,总是先让系统认识各个盘符,然后让每个盘符上都可以用长文件名。没想到实际与想象的完全相反。