首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试批次从文件名中删除不可见的特殊字符

尝试批次从文件名中删除不可见的特殊字符
EN

Stack Overflow用户
提问于 2019-08-16 19:47:37
回答 1查看 713关注 0票数 0

我有100+文件名,这些文件名是从具有隐藏特殊字符的程序中创建的。在windows资源管理器中,文件名看起来是正确的,但是将文件名复制并粘贴到一个程序中,如notepad++粘贴,文件名两端都有?'s‘.通过右键单击、删除文件名和重新键入文件名来手动重命名文件名,从而解决了问题。为了查看额外的字符,我必须将notepad++中的编码从UTF-8切换到ANSI。在帮助下,我已经识别了尾随的'?’。作为id 65279,或者BOM。这是什么焦炭? 65279 '‘

我需要加载文件回程序,但由于隐藏的特殊字符,程序没有看到他们正确阅读。

有没有一种方法可以使用PowerShell来清除文件?理想情况下,只有隐藏的特殊字符被删除,文件名的其余部分(包括下划线)被单独保留。文件名冲突不应成为当前情况下的问题,但如果出现异常,则自动覆盖将是一个很好的解决方案。输出文件名由包含以下内容的java脚本生成:

代码语言:javascript
运行
复制
var objName = f[myCounter].contents.replace(/ /g,"_").toLowerCase();
app.pngExportPreferences.pageString = curPage.name;
var myFilePath = myDoc.filePath + "/" + objName + ".png"; //export to a folder of the current document
var myFile = new File(myFilePath);
myDoc.exportFile(ExportFormat.PNG_FORMAT, myFile, false);

万一问题在那里更容易解决。我对PowerShell和javascript非常陌生。

我已经尝试了一些我找到的PowerShell脚本,包括:

代码语言:javascript
运行
复制
dir -Recurse | ?{$_.Name -match $re}  | %{ren -literalpath $_.FullName -newname (join-path (get-item $_.PSPArentPath) $($_.Name -replace $re,""))}

gci *.png | Rename-Item -NewName {$_ -replace '_*(\[.*?\]|\(.*?\))_*' -replace '_+', ' '}

他们没有删除隐藏的特殊人物。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-16 20:57:50

要用此问题复制文件名,请执行以下操作:

代码语言:javascript
运行
复制
echo hi > ([char]65279 + 'hithere' + [char]65279 + '.txt')

试试这个。如果它看起来不错,那么在重命名项目之后去掉-whatif,这样它实际上就会生效。

代码语言:javascript
运行
复制
dir | foreach {
  $name = $_.name
  $chars = [char[]]$name | where { $_ -in [char]' '..[char]'~' } # printable ascii
  $newname = -join $chars   # make a string again
  # $newname = $name -replace '[^ -~]'   # alternative
  if ($newname.length -lt $name.length) { # ascii name is smaller  
    $_ | rename-item -newname $newname -whatif
  }
}

参考文献:http://facweb.cs.depaul.edu/sjost/it212/documents/ascii-pr.htm

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57530338

复制
相关文章

相似问题

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