有人可以帮助将该DOS脚本转换为bash吗? 我曾尝试过,但并未真正成功
set DownloadPath="/volume1/various/temp"
set CorruptFilePath=/volume1/various/!corrupt
set ErrorReport=/volume1/various/Corrupt files.txt
pushd %DownloadPath%
for /r %%i in (*.rar;) do (
"unrar.exe" t "%%i"
if ERRORLEVEL 1 echo %%i>>%ErrorReport% & copy "%%i" %CorruptFilePath%
)
popd
有人可以帮我吗,非常感谢
我已要求更新问题,但脚本已如下所示进行转换,仅缺少一小部分关于maxdir深度
答案 0 :(得分:0)
如果我正确理解,您的脚本将测试给定文件夹(包括子文件夹)中每个.rar
文件的完整性,在错误日志中报告每个失败,并将失败的.rar
文件复制到单独的文件夹中
一个直接连接到Bash的端口看起来像这样:
#!/bin/bash
DownloadPath="/volume1/various/temp"
CorruptFilePath="/volume1/various/!corrupt"
ErrorReport="/volume1/various/Corrupt files.txt"
cd "$DownloadPath"
shopt -s globstar
for r in **/*.rar; do
unrar t "$r" || { echo "$r" >> "$ErrorReport" && cp -p "$r" "$CorruptFilePath"; }
done
免责声明:我尚未测试脚本。请随时这样做。