Re: [问题] 档名更改

楼主: ddavid (谎言接线生)   2019-12-26 04:31:03
※ 引述《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

Links booklink

Contact Us: admin [ a t ] ucptt.com