我希望在一个目录中自动压缩多个文件,每个文件都有相同的密码、命令行或应用程序。
file1 -> file1(w/password).rar
file2 -> file2(w/password).rar
file3 -> file2(w/password).rar
在一组文件上使用密码打包(WinRAR)中的答案接近我想要的,但对于我的需要来说太复杂了。
我知道从命令行可以很容易地完成相反的操作。
有什么想法吗?谢谢。
发布于 2017-03-14 06:29:22
下面是这个简单任务的批处理代码,还有一个额外的奖励:
工作目录可以作为第一个参数传递给批处理文件。
如果批处理文件在没有参数的情况下启动,则使用当前目录。
@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 /? ...解释%~1dir /?echo /?endlocal /?for /?goto /?if /?popd /?pushd /?set /?setlocal /?还请阅读微软关于使用命令重定向运算符解释2>nul的文章,在此代码中,必须使用插入字符^对重定向操作符>进行转义,以便在解析命令行的时首先将其解释为文字字符,并在为< code >E 249执行DIR时将其解释为重定向运算符。
并阅读使用Windows批处理文件使用多条命令的单行上的答案,以理解操作符&在两个命令行中的含义。
https://stackoverflow.com/questions/42657446
复制相似问题