我写了一个小批处理文件来解压文件夹内所有子文件夹中的所有内容。它工作正常,除了文件名应该是 ASCII。下面是工作的小代码:
@REM ------- BEGIN rarthem.bat ----------------
@setlocal
@echo off
echo --------------------------------------------------
echo Starting to rar files
echo --------------------------------------------------
echo.
echo.
echo.
set path="C:\Program Files\WinRAR\";%path%
for /D /r %%G in ("*") do (
echo Storing files in %%G
echo --------------------------------------------------
cd %%G
for %%I in (*.*) do (
rar a -x*.rar -x*.zip -m0 -id[c] "%%~nI.rar" "%%I"
echo Done archiving %%~nI%%~xI
)
echo --------------------------------------------------
echo Done archiving %%~nG
echo --------------------------------------------------
echo.
echo.
cd ..
)
echo Finished!
pause
REM ------- END rarthem.bat ------------------
我认为当文件名被解析为 WinRAR 时会出现问题,因为 WinRAR 归档具有 Unicode 名称的文件没有问题。
编辑:将文件名解析为 WinRAR 时,文件名会被修改,因此当 WinRAR 尝试以该名称查找文件时,它找不到它。例如一个文件: téext.pdf 解析时会变成 text.pdf 。
一个小问题:我没有尝试使用 7zip,用 7zip 实现同样的事情会更容易吗?
非常感谢您的帮助。