作者tonyhsie (一笔挥毫天下定)
看板EZsoft
标题Re: [打屁] 批次把档案放到资料夹的最上层
时间Sun Dec 7 19:41:21 2025
※ 引述《hirokofan (笠原弘子 命!)》之铭言:
: 呃....简单的说就是压缩档案的时候多压了一层,解开後要跑两层才会找到档案
: 用这个批次档可以一次解决一堆目录
: 功能:把指定目录里面的档案不管几层都放到最上层
: 如R:\folder1\folder2\*.txt
: 把R:\folder1\拿去处理後 *.txt 会移到R:\folder1\下面
: 档案撞名就无法移动,档案移动无法复原,风险自负QQ
: 会产生很多暂存档案
突然想到
七年前用 C# 也写过一个同样功能的小程式:
MoveFilesUp
(程式更新了四年,使用了七年多,应该没什麽问题...)
把所有子目录的档案,不管几层,通通搬到第一层目录下
如
R:\folder1\folder2\...\folderX\file1~Y,不管哪一层的所有档案
通通搬到
R:\folder1 下
移动档案後的
空目录会自动删除,若有
档案无法移动,则留给使用者
自己处理
若第一层目录下已有
同名档案的话,会
自动比对档案是否完全相同
(两个档案相同的话,
只留一份;不同的话,
不移动第二个档案)
若
路径名称过长的话,先把最後一层目录整个搬到根目录,然後再把档案搬到第一层目录
如:前例的
R:\folder1\...\folderX 先搬到
R:\0,再从
R:\0 搬到
R:\folder1
(搬移目录时,会自动避开根目录下的同名目录)
另一个功能是,搬移档案时
把目录名称保留在档名内,(参数
-k 或
/k)
如
R:\folder1\folder2\...\folderX\file1 ~ fileY 变成
R:\folder1\folder2$...$folderX$file1 ~ fileY (反斜线变成$字)
原始码:
https://pastebin.com/E7mKrN0t
执行档:
https://mega.nz/file/6EF1gTBA#Bc-VXyubmRvqzEMbgC74-6-WwrcpiNuQJqCMQ66zgKg
使用方式:把你想处理的一个(或多个)目录拖曳到
MoveFilesUp.exe 上
或是在命令列下指令:
MoveFilesUp <dir1> <dir2> ...
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.226.11.177 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/EZsoft/M.1765107690.A.225.html
1F:→ cancelpc: 这用不着特别写程式吧 12/07 20:30
2F:→ cancelpc: 原楼主提到有时压缩某目录时下档案时, 12/07 20:31
3F:→ cancelpc: 会连同整理用的目录也进去,导致多一层。 12/07 20:31
4F:→ cancelpc: 应该不是要把目录下的档案都放在同一层吧 12/07 20:32
5F:→ cancelpc: 类似建了「报告2025」,把相关档案都放进去 12/07 20:33
6F:→ cancelpc: 压缩时,有人希望包含「报告2025」,但有些人不希望有这 12/07 20:34
7F:→ cancelpc: 目录,而是所有相关的档案(含子目录) 12/07 20:35
8F:→ tonyhsie: 我一开始理解跟你一样,但後来仔细看内文,才发现他的 12/08 07:22
9F:→ tonyhsie: 叙述前後不一样 12/08 07:22
10F:→ tonyhsie: 原文前三行跟第四行,是两回事 12/08 07:23