批处理编程:通过 cli 进行 rar,将多个文件 RAR 分别放在自己的存档中

发布于 2024-10-12 00:47:36 字数 567 浏览 4 评论 0原文

我正在尝试制作一个简单的批处理脚本,但它一直失败。我想查找目录(基本路径)中的每个文件并将每个文件放入单独的 rar 存档中。

如果我在 rar 行中使用“%%~ni.rar”,他会将所有文件放入所有存档中。因此,对于 n 个文件,我得到 n 个档案,每个档案中有 n 个文件。 [而且他似乎没有将档案放在 [c:\test*.*] 中,而是将它们放在批处理文件的位置中。

如果我使用“%%i.rar”,它会创建两个不同的存档,但文件命名完全错误: fe: testfile.jpg >>> testfile.jpg.rar 这不是我想要的(而是 testfile.rar)

@ECHO OFF
CLS

SET BASEPATH=c:\test
SET RARExe=c:\PROGRA~1\WinRAR\RAR.EXE

FOR %%i IN (%basepath%\*.*) DO %RARExe% a -m0 "%%~ni.rar" c:\test\*.*
FOR %%i IN (%basepath%\) DO mkdir c:\test\%%~ni

Goto :eof

有人可以帮助我吗?

I'm trying to make a simple batch script but it keeps failing. I want to look for each file in a directory (basepath) and put each file in a separate rar archive.

If I use "%%~ni.rar" in the rar line, he puts all files in all archives. SO for n files i get n archives with in each archive the n files. [also he doesnt seem to put the archives in [c:\test*.*] but rather puts them in the location of the batch file.

If I use "%%i.rar" it creates two different archives, but then the filenaming is totaly wrong: f.e: testfile.jpg >> testfile.jpg.rar and thats not how i would like it (testfile.rar instead)

@ECHO OFF
CLS

SET BASEPATH=c:\test
SET RARExe=c:\PROGRA~1\WinRAR\RAR.EXE

FOR %%i IN (%basepath%\*.*) DO %RARExe% a -m0 "%%~ni.rar" c:\test\*.*
FOR %%i IN (%basepath%\) DO mkdir c:\test\%%~ni

Goto :eof

can someone help me out?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

后来的我们 2024-10-19 00:47:36

我找到了如何做到这一点,实际上是一个简单的解决方案。

FOR %%i IN (%basepath%\*.*) DO (
  rar a -ep1 -t -m0 c\test\%%~ni.rar %%i
)

I found how to do it, actually an easy solution.

FOR %%i IN (%basepath%\*.*) DO (
  rar a -ep1 -t -m0 c\test\%%~ni.rar %%i
)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文