【问题标题】:If zip file and folder name are identical, copy zip file into folder如果 zip 文件和文件夹名称相同,请将 zip 文件复制到文件夹中
【发布时间】:2019-05-04 14:48:33
【问题描述】:

我有许多 .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 文件。

【问题讨论】:

  • 这是 Windows 批处理脚本吗?您需要添加更多与语言和操作系统相关的标签。
  • 是的操作系统:Windows,我需要一个批处理或vbs脚本,谢谢

标签: batch-file vbscript process


【解决方案1】:
@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 改变当前目录 else 以errorlevel 1 退出。

for 循环遍历每个 zip 文件名。 它检查文件名的名称,不带扩展名, 确实存在,预计是一个文件夹。 如果确实存在,pushd 进入目录,然后 move将zip文件从父目录放入 当前目录。 popd 将恢复到 上一个目录。

最终popd 是否恢复到初始当前目录。

【讨论】:

  • 正是我想要的,解决了我的问题,非常感谢
猜你喜欢
  • 1970-01-01
  • 2023-01-11
  • 2014-08-15
  • 1970-01-01
  • 2020-11-02
  • 1970-01-01
  • 1970-01-01
  • 2020-07-10
  • 1970-01-01
相关资源
最近更新 更多