首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果字符ASCII编码大于128,如何用字符"_“替换文件夹中的所有文件名,请使用powershell

问如果字符ASCII编码大于128,如何用字符"_“替换文件夹中的所有文件名,请使用powershell
EN

Stack Overflow用户
提问于 2022-05-21 10:54:37
回答 1查看 141关注 0票数 1

示例文件名为PO 2171 Cresco REVISED.pdf .这些文件很多,文件名不规范,空格位置不固定。中间空间是大于128的字符ASCII代码,我希望用"_“一次替换大于128的字符ASCII代码。

我还没学过Powershell。非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-21 11:33:45

为此,您需要regex。

下面我使用ASCII范围32-129(在十六进制\x20-\x81中)来替换任何控制字符:

代码语言:javascript
复制
(Get-ChildItem -Path 'X:\TheFolderWhereTheFilesAre' -File) | 
    Where-Object { $_.Name -match '[^\x20-\x81]' } | 
    Rename-Item -NewName { $_.Name -replace '[^\x20-\x81]+', '_' }

Regex详细信息:

代码语言:javascript
复制
[^\x20-\x81]     Match a single character NOT in the range between ASCII character 0x20 (32 decimal) and ASCII character 0x81 (129 decimal)
   +             Between one and unlimited times, as many times as possible, giving back as needed (greedy)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72328896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档