Windows 板


LINE

公司電腦有鎖軟體,無法用改名軟體 因為文件上傳有檔名格式要求 小弟的需求是本來檔名前8碼編號保留,後面新增底線與編號。 上網找了一下文章,PoweShell指令自己嘗試更改有稍微完成,但遇到困擾是檔名保留了 ,但編號沒辦法因為不同檔名重新編號…. 以下是改完後的,求大神出手 Get-ChildItem *.pdf | ForEach-Object -Begin { $count = 1 } -Process { Rename-Item $_ -NewName ($_.Name.Substring(0,8)+"_$count.pdf" -f $c++) $count++ } --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.8.38.198 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Windows/M.1729322975.A.C43.html
1F:推 falcon: 在字串中必須要用$()包含程式碼,用來與一般字串區別, 10/19 17:16
2F:→ falcon: 所以是"_$($count).pdf"。另外,為何會有 -f $c++?這看起 10/19 17:16
3F:→ falcon: 來是多餘的,沒有任何可以代入的地方。 10/19 17:16
4F:→ falcon: 順便一提,不要把副檔名寫死比較好,如果會混合檔案格式 10/19 17:19
5F:→ thomaschion: 這種問題直接問copilot 10/19 18:01
6F:→ falcon: Get-ChildItem -LiteralPath . -Filter *.pdf | ForEach-O 10/19 18:05
7F:→ falcon: bject -Begin {$c = 0} -Proces {Rename-Item -LiteralPat 10/19 18:05
8F:→ falcon: h $_.FullName (Join-Path $_.DirectoryName ($_.Name -re 10/19 18:05
9F:→ falcon: place '^(.{1,8}).*?(\.[^\.]+)?$', ('$1' + "_$c" + '$2' 10/19 18:05
10F:→ falcon: ))); $c++} 10/19 18:05
11F:→ falcon: join-path 是多餘的,不需要給完整的目標 10/19 18:14
12F:→ falcon: 用完整路徑只是為了避開一個bug,不過為此 -LiteralPath . 10/19 22:10
13F:→ falcon: 也應該要改成 -LiteralPath $PWD.Path 10/19 22:10
感謝,不過運轉後,不是想要的。 想要的是這樣: 原檔名 ---> 新檔名 32010001(01) 32010001_01 32010001(02) 32010001_02 50000000(01) 50000000_01 60110000(01) 60110000_01 60110000(02) 60110000_02 71001111(01) 71001111_01 98765432(01) 98765432_01 大概就是保留指定的字元作為檔名,相同檔名進行編號,不同檔名的編號重新編號這樣。 ※ 編輯: jackygrap (114.39.33.135 臺灣), 10/19/2024 23:56:04
14F:→ falcon: $suffix=''; while(Test-path -LiteralPath ($newPath = 10/20 04:22
15F:→ falcon: Join-Path $_.DirectoryName ($baseName+$suffix+$extensi 10/20 04:22
16F:→ falcon: on))){$suffix = "_$c" -f c++}; Rename-Item $_ $newPath 10/20 04:22
17F:→ falcon: 產生新路徑的地方大概改成這樣,至於把檔名拆成basename 10/20 04:22
18F:→ falcon: 與副檔名的方法可以參考我上面用的正規表示法,因為5.1的 10/20 04:22
19F:→ falcon: split-path不支援分拆出basename 10/20 04:22
20F:推 falcon: https://i.imgur.com/DkCaj7k.jpeg 10/20 04:49
21F:→ falcon: 你可以參考這個函式 10/20 04:50
22F:→ falcon: 這裡借用了.net 的 IO.Path 物件 10/20 04:52
23F:→ falcon: 還有按照你的需求,不同檔案要重新計數,你不應該把初始值 10/20 05:24
24F:→ falcon: 寫在 -Begin {} 中,因為它管道中只會執行一次,也就是只 10/20 05:24
25F:→ falcon: 有第一個檔案之前會執行到 10/20 05:24
26F:→ falcon: 應該在 -Process { } 中最上方 10/20 05:38
27F:→ hunandy14: 就你的範例原本的編號如果是有效的 可以考慮直接沿 10/20 12:24
28F:→ hunandy14: 用 10/20 12:24
29F:→ falcon: 我覺得還是不要用Windows PowerShell 5.1吧 10/20 13:45
30F:→ falcon: 要避開太多奇怪的問題了 10/20 13:46
31F:→ falcon: https://i.imgur.com/jI3VtTD.png 10/20 13:48
32F:→ falcon: 左邊是內建的5.1,右邊是最新的跨平台版 10/20 13:49
33F:→ falcon: 真的要用你就照h大的說法取原本括號內的編號來用就好 10/20 13:53
34F:→ falcon: 用正規表示法選取字串,如果來源檔名保證規律用分割法即可 10/20 13:55
35F:推 falcon: https://i.imgur.com/yx8iZwZ.png 10/20 14:13
36F:→ falcon: 參考圖片就好,16f推文有個地方錯了 10/20 14:17
37F:→ falcon: 檔名都規律的話 '^(.*?)\((\d+)\)(\.[^\.]+)$' 就可以了 10/20 14:29
有,檔名都規律的話,大神的寫法達成了 >口< 如大神所說,除了前面編碼8個字元是規律的外, 後面編碼實際上都會這樣....(跑了大神的寫法) 原檔名 --實際運作-→ 新檔名 --想要成果--> 想要檔名 32010001 32010001 32010001_1 32010001(02) 32010001_2 32010001_2 50000000 50000000 50000000_1 60110000 60110000 60110000_1 60110000(02) 60110000_2 60110000_2 71001111 71001111 71001111_1 98765432 98765432 98765432_1 50103345 50103345 50103345_1 50103345(2) 50103345_2 50103345_2 50103345(3) 50103345_3 50103345_3 50103345(4) 50103345_4 50103345_4 '^(.{1,8}).*?\((\d+)\).*?(\.[^\.]+)?$', '$1_$2$3' ← 這邊又該如何修正比較好 ※ 編輯: jackygrap (114.39.33.135 臺灣), 10/20/2024 19:26:23
38F:→ hunandy14: 沒有括號的傢伙一定對應到1嗎 10/21 15:44
39F:→ hunandy14: 成立的話那傢伙特別處理,括號的數字直接繼承,會比較 10/21 15:46
40F:→ hunandy14: 省事ㄅ 10/21 15:46
41F:推 allen65535: ReNamer有免安裝版啊 10/21 15:59
42F:→ falcon: 有些免安裝程式也會在系統留下使用痕跡 10/21 17:15
43F:→ falcon: 這就要看樓主公司怎麼怎麼規定了 10/21 17:15
免安裝也被IT擋~(嘆氣)
44F:→ falcon: 我也是推ReNamer,但沒有深色主題用起來不夠舒服… 10/21 17:21
45F:→ falcon: 另外,你的問題可以用-match與if-else個別處理 10/21 17:25
46F:→ falcon: https://zh.m.wikipedia.org/zh-tw/regex 10/21 17:29
47F:→ hunandy14: 我猜大概是選一團檔案F2 後來又想改結果回不去了XD 10/21 21:46
沒辦法 系統毛太多,每個人編號習慣五花八門Orz ※ 編輯: jackygrap (114.39.33.135 臺灣), 10/21/2024 23:21:05
48F:推 Arbin: 安裝免安裝都擋卻沒擋PowerShell 這IT不及格吧(欸 10/22 21:04
49F:→ hunandy14: https://hackmd.io/YY7eqJFaTcKeUJoICkOcEA?view 10/23 12:45







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP