首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >winrar命令行:从一个目录创建多个winrar密码文件

winrar命令行:从一个目录创建多个winrar密码文件
EN

Stack Overflow用户
提问于 2017-03-07 20:13:40
回答 1查看 1.4K关注 0票数 0

我希望在一个目录中自动压缩多个文件,每个文件都有相同的密码、命令行或应用程序。

file1 -> file1(w/password).rar

file2 -> file2(w/password).rar

file3 -> file2(w/password).rar

在一组文件上使用密码打包(WinRAR)中的答案接近我想要的,但对于我的需要来说太复杂了。

我知道从命令行可以很容易地完成相反的操作。

有什么想法吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-14 06:29:22

下面是这个简单任务的批处理代码,还有一个额外的奖励:

工作目录可以作为第一个参数传递给批处理文件。

如果批处理文件在没有参数的情况下启动,则使用当前目录。

代码语言:javascript
复制
@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "WorkingDirectory="
if "%~1" == "" goto ArchiveFiles

set "WorkingDirectory=%~1"
if "%WorkingDirectory:~-1%" == "\" (
    if exist "%WorkingDirectory%*"  pushd "%WorkingDirectory%" & goto ArchiveFiles
) else (
    if exist "%WorkingDirectory%\*" pushd "%WorkingDirectory%" & goto ArchiveFiles
)
echo Directory "%WorkingDirectory%" does not exist.
endlocal
goto :EOF

:ArchiveFiles
for /F "delims=" %%I in ('dir /A-D /B * 2^>nul') do (
    if /I not "%%~xI" == ".rar" (
        "%ProgramFiles%\WinRAR\Rar.exe" a -@ -cfg- -ep1 -idq -m5 -ma4 "-pPassword" -r- -s- -y -- "%%~nI.rar" "%%~fI"
    )
)
if not "%WorkingDirectory%" == "" popd
endlocal

此批处理文件将忽略目录中已经存在的*.rar文件。

打开WinRAR的程序文件文件夹、文本文件、、Rar.txt、,了解使用过的命令a和已使用的开关的详细信息。

要了解所使用的命令及其工作方式,请打开命令提示符窗口,在那里执行以下命令,并非常仔细地读取为每个命令显示的所有帮助页。

  • call /? ...解释%~1
  • dir /?
  • echo /?
  • endlocal /?
  • for /?
  • goto /?
  • if /?
  • popd /?
  • pushd /?
  • set /?
  • setlocal /?

还请阅读微软关于使用命令重定向运算符解释2>nul的文章,在此代码中,必须使用插入字符^对重定向操作符>进行转义,以便在解析命令行的时首先将其解释为文字字符,并在为< code >E 249执行DIR时将其解释为重定向运算符。

并阅读使用Windows批处理文件使用多条命令的单行上的答案,以理解操作符&在两个命令行中的含义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42657446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档