makecab命令使用时的问题
现有一个_file.txt,里面每一行都是一个文件的绝对路径。
但是,_file.txt中的有的文件可能不存在,或者无法读取。也可能有2行路径重复,或者2个文件同名的情况。
需要使用makecab命令将其建立为一个压缩包。
但是,makecab每遇到一个文件不存在或两行内容相同,就会产生错误信息,诸如:
ERROR: Duplicate file name : xxx already define at ...
ERROR: Could not find file : xxxxxx
最后就是:
ERROR: MakeCAB aborted: xxx errors encountered
我想要的结果是,文件找到了就压缩进去,没找到就算了,但最后也得生成个CAB包。不要碰到错误就停止压缩了。
难道连个On Error Resume Next的选项都没有吗?
------最佳解决方案-------------------- 引用: 引用:
用批处理把_file.txt处理一下,然后再makecab
你怎么用批处理找2个文件重名或2个路径重复的情况?要是这么轻松我早用了。
批处理肯定办得到了
------其他解决方案-------------------- makecab XXX
------其他解决方案-------------------- echo "error"
------其他解决方案-------------------- 如果 makecab 没有提供忽略错误个数的话,试试将某文件加入 cab 前先看看文件是否存在?或者,修改 makecab.exe 程序文件让其无视这样错误个数。
------其他解决方案-------------------- 用批处理把_file.txt处理一下,然后再makecab
------其他解决方案-------------------- 引用: 用批处理把_file.txt处理一下,然后再makecab
你怎么用批处理找2个文件重名或2个路径重复的情况?要是这么轻松我早用了。
------其他解决方案-------------------- 执行makecab命令,
然后
@if ERRORLEVEL 1 (
//错误处理
)
DOS命令错误有分等级的,自己多多测试
------其他解决方案-------------------- 引用: 执行makecab命令,
然后
@if ERRORLEVEL 1 (
//错误处理
)
DOS命令错误有分等级的,自己多多测试
大哥,我要让makecab执行成功,不是失败,因为我想要压缩包。
如果makecab.exe返回失败,你能告诉我怎样得到压缩包吗= =?
现在我不求前2条解决,就处理2个文件不同路径但是同名的情况吧,makecab不会连这个都搞不定?
------其他解决方案-------------------- makecab只负责打包,你给错误命令别人也要执行成功?
自己检测_file.txt的路径是否存在,把不存在的路径过滤掉,再生成。
(用find命令写脚本,返回是否存在,如果find命令有问题,记得拷贝个find.exe到)
------其他解决方案-------------------- 不要把批处理想得太弱,也不要想得太强,处理楼主这个问题还是措措有余的
100分拿来吧
@echo off
set fn=d:\_file.txt
set ftmp=d:\filelist.tmp
set cabfn=a.cab
cd.>%ftmp%
for /f "tokens=*" %%a in (%fn%) do (
if exist "%%a" (
findstr /i %%~xna %ftmp%