吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 237|回复: 29
收起左侧

[经验求助] windows目录层级批量修改

[复制链接]
wangxiaohe 发表于 2024-10-24 16:17
25吾爱币
D:\test\01\images\2020\10\123.txt
D:\test\01\images\2021\10\123.txt
D:\test\01\images\2022\10\123.txt
D:\test\01\images\2023\10\123.txt
D:\test\01\images\2024\10\123.txt

D:\test\01\10\123.txt
D:\test\01\10\123.txt
D:\test\01\10\123.txt
D:\test\01\10\123.txt
D:\test\01\10\123.txt

用什么工具可以批量的把上边的目录结构修改为下边的目录结构呢?就是删除中间的某些目录层级。

最佳答案

查看完整内容

用这个应该没问题了 [mw_shl_code=powershell,true]@echo off chcp 65001 > nul setlocal enabledelayedexpansion for /f "tokens=1,2 delims=|" %%s in (directories.txt) do ( set "source_dir=%%s" set "target_dir=%%t" if not exist "!target_dir!" ( mkdir "!target_dir!" ) robocopy "!source_dir!" "!target_dir!" /E /MOVE rem 检查父目录是否为空 for % ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Cristy 发表于 2024-10-24 16:17
wangxiaohe 发表于 2024-10-30 09:02
批处理提示目录不为空

用这个应该没问题了
[PowerShell] 纯文本查看 复制代码
@echo off
chcp 65001 > nul
setlocal enabledelayedexpansion

for /f "tokens=1,2 delims=|" %%s in (directories.txt) do (
    set "source_dir=%%s"
    set "target_dir=%%t"

    if not exist "!target_dir!" (
        mkdir "!target_dir!"
    )
     
    robocopy "!source_dir!" "!target_dir!" /E /MOVE

    rem 检查父目录是否为空
    for %%i in ("!source_dir!") do (
        set "parent_dir=%%~dpi"
        if exist "!parent_dir!" (
            pushd "!parent_dir!" > nul
            set "is_empty_parent=1"

            rem 检查父目录是否有文件或子目录
            for /f %%f in ('dir /a /b') do (
                set "is_empty_parent=0"
                echo 父目录不为空: %%f
                rem 检查是否有隐藏文件
                if "%%~af"=="d" (
                    echo 发现父目录中的子目录: %%f
                ) else (
                    if "%%~af"=="h" (
                        echo 发现父目录中的隐藏文件: %%f
                    )
                )
            )

            popd > nul

            if "!is_empty_parent!"=="1" (
                rd /s /q "!parent_dir!" 2>nul
                echo 父目录已强制删除: "!parent_dir!"
            ) else (
                echo 父目录不为空,无法删除: "!parent_dir!"
            )
        )
    )
)

echo 移动完成。
pause

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
wangxiaohe + 1 + 1 热心回复!

查看全部评分

bubuding 发表于 2024-10-24 17:44
everything.exe软件。先手动创建一个D:\test\01\10文件夹。然后利用everything.exe筛选D:\test\01\images\文件夹下的所有txt文件。然后全选,人工拷贝到D:\test\01\10文件夹下
Cristy 发表于 2024-10-24 17:49
本帖最后由 Cristy 于 2024-10-24 17:50 编辑

用bat

@echo off
setlocal

rem 源目录
set "source_dir=D:\test\01\images\2020\10"
rem 目标目录
set "target_dir=D:\test\01\10"

if not exist "!target_dir!" (
    mkdir "!target_dir!"
)

rem 移动子目录和文件
move "!source_dir!\*" "!target_dir!\"

rem 删除源目录
rd /s /q "E:\work\Kdgc"

echo 移动完成。
pause
zhuiyu 发表于 2024-10-24 17:54
更改目录结构后是否存在相同文件名的文件,如果存在又该如何处理,直接覆盖?
 楼主| wangxiaohe 发表于 2024-10-29 09:07
bubuding 发表于 2024-10-24 10:44
everything.exe软件。先手动创建一个D:\test\01\10文件夹。然后利用everything.exe筛选D:\test\01\images\ ...

这跟我直接去目录里剪切有什么区别?剪切后复制到上上层目录,100个目录,我剪切100次。
 楼主| wangxiaohe 发表于 2024-10-29 09:08
Cristy 发表于 2024-10-24 10:49
[md]
# 用bat
```PowerShell

这个一次只能修改一个目录吧,我有100个类似结构的目录呢?
Cristy 发表于 2024-10-29 09:38
wangxiaohe 发表于 2024-10-29 09:08
这个一次只能修改一个目录吧,我有100个类似结构的目录呢?

创建一个txt   directories.txt 必须这个名字
文本里面写 源目录|目标目录   用竖线隔开

它会把左边目录下的所有的东西移动到右边 并删除左边目录

创建一个 bat  把bat和txt放在一起
[PowerShell] 纯文本查看 复制代码
@echo offchcp 65001 > nul
setlocal enabledelayedexpansion

rem 读取目录列表并处理每个目录
for /f "tokens=1,2 delims=|" %%s in (directories.txt) do (
    set "source_dir=%%s"
    set "target_dir=%%t"

    rem 创建目标目录(如果不存在)
    if not exist "!target_dir!" (
        mkdir "!target_dir!"
    )

    rem 移动子目录和文件
    move "!source_dir!\*" "!target_dir!\"

    rem 删除源目录
    rd /s /q "!source_dir!"
)

echo 移动完成。
pause
 楼主| wangxiaohe 发表于 2024-10-29 14:51
Cristy 发表于 2024-10-29 02:38
创建一个txt   directories.txt 必须这个名字
文本里面写 源目录|目标目录   用竖线隔开



报错了
Cristy 发表于 2024-10-29 14:59

https://www.123865.com/s/XxfSVv-k8F4?提取码:CCYt

下载我的这个  改directories.txt 试试

直接双击bat
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 03:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表