[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理怎么移动多级目录下的文件到其顶层目录下

本帖最后由 zhenzhu 于 2023-11-22 17:12 编辑

例如一个文件夹下有这样的几个子文件夹,里面的目录结构是这样:
A01/001/1.jpg
A02/002/002/aaa.jpg
A256/256/256/a/1.txt
A256/256/256/b/1.txt

就是想把001 256 这样的纯数字目录给删掉,但是最里面的文件或者文件夹给移动到最上层的目录下面,使其变成如下格式:
A01/1.jpg
A02/aaa.jpg
A256/a/1.txt
A256/b/1.txt
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

/zhqsystem/zhq 发表于 2023-11-22 14:51


谢谢,这个可以把文件都移动到顶层来,不过有个小问题,

例如A256/256/256/a/1.txt,运行脚本后就变成了A256/1.txt,没有保留a/1.txt的目录结构,因为有文件有重名,所以要保留除数字目录外的文件结构,有什么办法可以改进吗

TOP

当前目录和所有父目录都不要存在纯数字的文件夹
pd1 发表于 2023-11-22 15:50


谢谢,不过有个小问题,这个脚本会把最顶层的A01 A02等目录也删掉了

TOP

77七 发表于 2023-11-22 15:44



    太对了哥,就是这样的,谢谢

TOP

77七 发表于 2023-11-22 15:44


不过用robocopy会把文件都复制一次,内容很多的话就很耗时,如果有大文件就更慢了

TOP

本帖最后由 zhenzhu 于 2023-11-22 17:09 编辑
回复  zhenzhu


    我测试没问题。可以发一下A01里面的文件的全路径看一下
pd1 发表于 2023-11-22 16:56


我的我的,我之前测试改了名称,顶层文件夹目录也是纯数字的,所以也被删掉了,这个脚本是没问题的,完美解决,谢谢老哥

TOP

回复  zhenzhu
77七 发表于 2023-11-22 17:04


完美解决了,谢谢老哥

TOP

回复  zhenzhu


    我测试没问题。可以发一下A01里面的文件的全路径看一下
pd1 发表于 2023-11-22 16:56


我后面测试又发现点小问题,如果父文件夹的名称有特殊字符,就无法处理了

中文 对照_3(2016) √
中文 对照-2(2019) √
中文 对照1(2019)[x5-x6] ×

应该是因为中括号的问题
------------------------------
md : 具有指定名称 C:\Users\Administrator\Desktop\test - 副本\中文 对照1(2019)[x5-x6]\ 的项已存在。
所在位置 行:6 字符: 116
+ ... ce "\\\d+(?=\\)","";if(-not (Test-Path $newpath)){md $newpath};Move-I ...
+                                                       ~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (C:\Users\Admini...1(2019)[x5-x6]\:String) [New-Item], IOException
    + FullyQualifiedErrorId : DirectoryExist,Microsoft.PowerShell.Commands.NewItemCommand

md : 具有指定名称 C:\Users\Administrator\Desktop\test - 副本\中文 对照1(2019)[x5-x6]\ 的项已存在。
所在位置 行:6 字符: 116
+ ... ce "\\\d+(?=\\)","";if(-not (Test-Path $newpath)){md $newpath};Move-I ...
+                                                       ~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (C:\Users\Admini...1(2019)[x5-x6]\:String) [New-Item], IOException
    + FullyQualifiedErrorId : DirectoryExist,Microsoft.PowerShell.Commands.NewItemCommand

md : 具有指定名称 C:\Users\Administrator\Desktop\test - 副本\中文 对照1(2019)[x5-x6]\ 的项已存在。
所在位置 行:6 字符: 116
+ ... ce "\\\d+(?=\\)","";if(-not (Test-Path $newpath)){md $newpath};Move-I ...
+                                                       ~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (C:\Users\Admini...1(2019)[x5-x6]\:String) [New-Item], IOException
    + FullyQualifiedErrorId : DirectoryExist,Microsoft.PowerShell.Commands.NewItemCommand

TOP

返回列表