作者ddavid (谎言接线生)
看板Programming
标题Re: [问题] 档名更改
时间Thu Dec 26 04:31:03 2019
※ 引述《JokePtt (思辨成魔)》之铭言:
: https://i.imgur.com/3r69LqW.jpg
: 不好意思 又上来叨扰各位
: 我用软体把pdf转jpg 生成了数千个子资料夹
: (1)我想把档案全部一次命名 图中B部分比如是caseABC以下数千个子目录下的档案
: 图中A部的hottest只是其一子目录 如当中档案1.jpg 2.jpg 3.jpg 档案数不固定
: 重命名为 子目录名 + 分隔号 _ + 档案流水号*2-1
: 如 hottest_1.jpg hottest_3.jpg hottest_5.jpg...
: 在B部分的caseABC下所有子目录档案皆找各自的子目录(A部分名)重新命名
: 该如何用cmd或powershell??
: (2)我要将F:\Data\Projects\caseABC 数千个子目录下改好名的各档案
: 一起移至与B同阶的 子目录1 以图例是 F:\Data\Projects\1
: 又该怎麽下指令?!
: 当然移完後的动作 我会直接在caseABC上点内容 确认没有档案後移除
: 再把资料夹 1 改名为 caseABC 手动就可以完成
: 只是前两点对於数千个生成的资料夹 及里面总数上万个档案
: 有点不知所措 还请各位贤德不吝赐教 感恩
: → ddavid: 那个流水号 *2-1 我不知道用cmd解决的办法 111.250.172.15 12/26 03:55
: → ddavid: ,若是没这要求其他都还可以轻松cmd搞定 111.250.172.15 12/26 03:55
: → ddavid: 有那个要求的话,别考虑cmd,找人用python 111.250.172.15 12/26 03:58
: → ddavid: 之类的写个小程式来做可能比较实在XD 111.250.172.15 12/26 03:58
我还是先讲一下如果没有那个流水号*2-1取代问题的话,只靠cmd完成的方法。
我cmd没熟到那个程度,也许有人知道cmd就能搞定完整要求的方式XD
在caseABC里面建立个批次档(就假定是ren_and_move.bat吧),内容为:
for /d %%i in (*) do (
cd %%i
for %%j in (*) do ren %%j %%i_%%j
cd ..
mv %%i F:\Data\Projects\1
)
第一行跟上一个回答前半很像,但加入 /d 是表示找的不是档名而是子目录。
找到了caseABC下面的一个子目录名取代後面四行里面全部的%%i後,第二行进去
那个子目录。
第三行跟上次回答几乎一样,只不过上次指定RSI_,这次用找到的目录名%%i取
代,档案名则是取代%%j,所以在目录hottest下找到1.jpg的话就会取代为
hottest_1.jpg了。
第四行再回上一层也就是回到caseABC这一层里面。
第五行就把已经处理完里面档案改名的这个目录%%i搬动到你的新目标目录
F:\Data\Projects\1 下面去。
第六行的右小括号不要忘记掉。
这个批次档ren_and_move.bat建立好,就在caseABC目录里面执行,就会一次搞
定改名跟搬动了。至於那个*2-1要求我真的没熟悉到可以只靠cmd做到XD
我姑且初步尝试了用set /a来弄个一次+2的变数,但尝试失败了XD
--
「去质疑亲眼所见的事是最愚昧的行为。这又分为两种--质疑自己所见是不是
真的,或是用见到的事去质疑没见到的事。呵。」
--芙莉雅,谎言事务所实现使者
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.250.172.15 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Programming/M.1577305868.A.AB8.html
1F:推 JokePtt: 谢谢 帮忙很大180.217.254.134 12/26 17:22
2F:推 joery: 大大好强大 49.214.180.106 01/02 11:51
3F:→ kkes0001: 想学shell了 101.12.46.220 01/03 11:54