如果zip文件和文件夹名称相同,则将zip文件复制到文件夹中

时间:2018-12-03 10:13:31

标签: batch-file vbscript process

我有许多.zip文件和文件夹,其中一些具有相同的名称。 我将检查zip文件名和文件夹名是否相同。 我将zip文件复制到该文件夹​​中,然后删除该zip文件。

是否可以使流程自动化?

我找到了以下代码,但无法对其进行编辑:

@echo off
setlocal EnableDelayedExpansion
pushd "C:\New folder"
FOR %%G IN (*.zip DO (
    FOR /F "tokens=1 delims= " %%a IN ("%%G") do (
        set "outFolder=%%a Random Center"
        for /D %%i in (*.*) do (
            for /F "tokens=1 delims= " %%b IN ("%%i") do (
                if "%%a"=="%%b" set "outFolder=%%i"
            )
        )
        if not exist "!outfolder!" md "!outfolder!"
        move "%%G" "!outfolder!"
    )
)
popd
pause

它创建 Random Center 文件夹,并复制其中不需要的所有zip文件。

1 个答案:

答案 0 :(得分:0)

@echo off
setlocal

pushd "C:\New folder" || exit /b 1

for %%A in (*.zip) do if exist "%%~nA" (
    pushd "%%~nA" && (
        move /y "..\%%~nxA"
        popd
    )
)

popd
pause

使用move,因为不需要 copydel压缩文件。 参数/y将自动 不覆盖现有文件 提示。

初始pushd更改当前目录 否则以errorlevel 1退出。

for循环遍历每个zip文件名。 它检查文件名的名称(不带扩展名), 确实存在,应该是一个文件夹。 如果确实存在,请pushd进入目录,然后 将父目录中的zip文件move放入 当前目录。 popd将还原到 上一个目录。

执行最后的popd还原到初始当前目录。