| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 183 人关注过本帖
标题:下面批量解压的代码为什么出现没有档案文件被发现
只看楼主 收藏
sylknb
Rank: 3Rank: 3
等 级:论坛游侠
威 望:9
帖 子:1419
专家分:125
注 册:2006-6-3
结帖率:78.57%
  已结贴   问题点数:20  回复次数:9   
下面批量解压的代码为什么出现没有档案文件被发现
n=adir(filearray,"*.rar")
if n<>0
  for i=1 to n
     *?filearray[i,1]
     
     run /n C:\Program Files\WinRAR\winrar.exe  x -ibck filearray[i,1]  
  endfor
endif  
提示
 *?filearray[i,1]
都能显示所有的.rar 文件,为什么会出现上述的提示

[此贴子已经被作者于2017-6-13 23:36编辑过]

附件: 您没有浏览附件的权限,请 登录注册
2017-06-13 23:33
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:99
帖 子:3718
专家分:13882
注 册:2014-5-20
  得分:0 
filearray[i,1] 只是一个数组元素表达式,不是一个文件名。
试试用名字表达式:(filearray[i,1])。
或用宏替换。
2017-06-14 04:16
红星二锅头
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:20
帖 子:262
专家分:345
注 册:2016-8-25
  得分:0 
C:\Program Files\WinRAR\winrar.exe  
是长文件名/路径名,要用引号圈起来,,,

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2017-06-14 06:57
sylknb
Rank: 3Rank: 3
等 级:论坛游侠
威 望:9
帖 子:1419
专家分:125
注 册:2006-6-3
  得分:0 
吹水佬:试试用名字表达式:(filearray[i,1])。
或用宏替换。
红星二锅头:是长文件名/路径名,要用引号圈起来,,,
都修改了都不行,提示
附件: 您没有浏览附件的权限,请 登录注册
2017-06-14 09:19
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:99
帖 子:3718
专家分:13882
注 册:2014-5-20
  得分:0 
回复 4楼 sylknb
用宏替换试试:
n=adir(filearray,"*.rar")
for i=1 to adir(filearray,"*.rar")
    cFile = filearray[i,1]
    run /n7 C:\Program Files\WinRAR\winrar.exe  x -ibck &cFile
endfor

filearray[i,1]是不含路径的文件名
如果对路径敏感,cFile要加上路径
2017-06-14 10:40
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:99
帖 子:3718
专家分:13882
注 册:2014-5-20
  得分:0 
如果文件名不符合WinRAR规范,文件名用双引号,如:cFile = ["c:\temp\test - tmp.rar"]
2017-06-14 10:46
sylknb
Rank: 3Rank: 3
等 级:论坛游侠
威 望:9
帖 子:1419
专家分:125
注 册:2006-6-3
  得分:0 
以下是引用吹水佬在2017-6-14 10:40:13的发言:

用宏替换试试:
n=adir(filearray,"*.rar")
for i=1 to adir(filearray,"*.rar")
    cFile = filearray
    run /n7 C:\Program Files\WinRAR\winrar.exe  x -ibck &cFile
endfor
 
filearray是不含路径的文件名
如果对路径敏感,cFile要加上路径
成功了,诚心诚意谢谢!
2017-06-14 11:19
sylknb
Rank: 3Rank: 3
等 级:论坛游侠
威 望:9
帖 子:1419
专家分:125
注 册:2006-6-3
  得分:0 
吹水佬班主“
又要麻烦您了,如果把N个XLS文件分别压缩到已有的N个RAR文件。

n=adir(filearray,"*.rar")
for i=1 to adir(filearray,"*.rar")
    cFile = filearray[i,1]
    *?cFile
   *?JUSTSTEM(JUSTFNAME("&cFile"))
   *?JUSTSTEM(JUSTSTEM(JUSTFNAME("&cFile")))+".dbf"
    run /n7 C:\Program Files\WinRAR\winrar.exe  a -ibck JUSTSTEM(JUSTFNAME("&cFile"))  JUSTSTEM(JUSTSTEM(JUSTFNAME("&cFile")))+".dbf"
endfor
为什么提示
附上附件:我的思路是N个rar中已有xls的文件,现在想把N个dbf文件分别压缩到对应的压缩包中去 如bmk065101.dbf 添加到bmk065101.xls.rar,bmk065102.db 添到bmk065102.xls.rar中.....。
附件: 您没有浏览附件的权限,请 登录注册
2017-06-14 13:11
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:99
帖 子:3718
专家分:13882
注 册:2014-5-20
  得分:20 
回复 8楼 sylknb
一样用宏替换
FOR i=1 TO ADIR(filearray, "*.rar")
    cRAR = filearray[i,1]
    cDBF = LEFT(cRAR, AT(".",cRAR)) + "dbf"
    RUN /N7 "C:\Program Files\WinRAR\winrar.exe" a -ibck &cRAR &cDBF
ENDFOR
2017-06-14 13:47
sylknb
Rank: 3Rank: 3
等 级:论坛游侠
威 望:9
帖 子:1419
专家分:125
注 册:2006-6-3
  得分:0 
以下是引用吹水佬在2017-6-14 13:47:47的发言:

一样用宏替换
FOR i=1 TO ADIR(filearray, "*.rar")
    cRAR = filearray
    cDBF = LEFT(cRAR, AT(".",cRAR)) + "dbf"
    RUN /N7 "C:\Program Files\WinRAR\winrar.exe" a -ibck &cRAR &cDBF
ENDFOR
高!实在之高,太感谢!无私的指教,在另一个QQ群中请教要收红包才给你指教,真是一切向钱前。
2017-06-14 14:02









关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049232 second(s), 8 queries.
Copyright©2004-2017, BCCN.NET, All Rights Reserved