批处理程序自动将zip文件排序到文件夹并提取

时间:2017-08-18 20:05:38

标签: windows batch-file directory extraction

我是一名教师助理,我的工作是将学生的实验室分类到他们的文件夹中。他们在文件中转换的格式就像这样

lastname_Labname.zip

我希望实现的是自动将这些拉链移动到不同位置的文件夹中。遵循这种格式

  • Lastname1
  • Lastname2
  • Lastname3

最后我想在之后删除zip文件。

这是我到目前为止所做的:

提取文件:

FOR /D /r %%F in ("*") DO (
pushd %CD%
cd %%F
    FOR %%X in (*.rar *.zip) DO (
        "C:\Program Files\7-zip\7z.exe" x "%%X"
pause
    )
popd
)

要对文件进行排序:

@ECHO OFF
SETLOCAL
SET "sourcedir=C:\Something\Something"
SET "destdir=C:Somethign\Something"
FOR /f "delims=" %%a IN (
 'dir /b /a-d "%sourcedir%\*.zip" '
 ) DO (
 FOR /f "tokens=1delims=_-" %%b IN ("%%a") DO (
  FOR /f "delims=" %%d IN (
  'dir /b /ad "%destdir%\*%%b*" '
  ) DO (
    MOVE "%%a" "%destdir%\%%d\" 

  )
 )
)

GOTO :EOF

我想结合这些功能,并在之后删除拉链。

1 个答案:

答案 0 :(得分:0)

我有类似的设置。

@Echo OFF
set Down=E:\Download
set Extracted=E:\Extracted

for /R "%Down%" %%I in ("*.zip") do (

  "%ProgramFiles%\7-Zip\7z.exe" x -y "%%~fI" -pPasswordGoesHere
  Del "%%I"

)
FOR    %%i IN ("%Down%\*") DO MOVE /Y "%%i" "%Sorted%\%%~nxi" /xf Unzip.bat
FOR /D %%i IN ("%Down%\*") DO ROBOCOPY /MOVE /E "%%i" "%Sorted%\%%~nxi" /xf Unzip.bat