【问题标题】:Batch Unrar after check file extension检查文件扩展名后批量解压缩
【发布时间】:2014-02-01 07:41:11
【问题描述】:

我正在尝试通过 batch 脚本解压缩 400 个文件。 在我的文件夹中混有视频的文件 一些文件名是“love.blood.repack.mp4” 我在脚本中添加了 .r 以查找 rar 文件 但脚本显示视频文件,如“love.blood.repack.mp4”

如何检查扩展名是否有 .rar .r001 .r01 .r02 等然后运行 ​​unrar ? 只检查扩展名而不是完整的文件名

c:\unrar.bat c:\mymixedfolder

我的 windows .bat 批处理脚本

@echo off &setlocal
set /a nfile=0
echo Copying directory structure from %1 to %2 ...
xcopy /T "%~1" "%~2"
REM walk directory structure and convert each file in quiet mode
set "sourcefolder=%~1"
set "targetfolder=%~2"
for /R "%sourcefolder%" %%a in (*.r*) do (
    echo converting "%%~nxa" ...
    set "sourcefile=%%~fa"
    set "sourcepath=%%~dpa"
    set "targetfile=%%~na.flv"
    setlocal enabledelayedexpansion
    set "targetfolder=%targetfolder%!sourcepath:%sourcefolder%=!"
    echo "%%~nxa"
    endlocal
    set /A nfile+=1
)
echo Done! Unrar %nfile% file(s)

【问题讨论】:

  • 您实际上并没有开始解开 .r01 卷等。始终从 .rar 文件开始。将提取同一集合中的所有内容。 .r001 之类的东西不存在(在 .r99 之后它变为 s00),但 .001 RAR 存在。您将只想开始从 .part01.rar、.rar 和 .001 文件中提取。
  • @Gfy 是的,但我需要这个,因为我想在解压后删除 rar(所有)文件

标签: windows batch-file unrar


【解决方案1】:

尝试:

@ECHO OFF &SETLOCAL disableDelayedExpansion
SET "sourcefolder=."
FOR /R "%sourcefolder%" %%a IN (*.r*) DO (
    FOR /f "delims=" %%b IN ('echo %%~xa^|findstr /r "\.r.*"') DO ECHO %%~a
)

【讨论】:

    【解决方案2】:

    这是另一种选择:

    @ECHO OFF
    SET "sourcefolder=."
    FOR /R "%sourcefolder%" %%a IN (*.r??) DO (
        if /i "%%~xa"==".rar" DO ECHO %%~a
    )
    

    【讨论】:

      猜你喜欢
      • 2010-09-13
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2014-04-19
      • 1970-01-01
      相关资源
      最近更新 更多