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/cn.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灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP