删除文件名开头的所有零

时间:2019-01-04 20:16:52

标签: string powershell

我在文件中有一些文档,这些文档以不同数量的零开头。我想在文件开头删除所有这些零。

例如

来自

010 document.docx
0002  document.docx
030  document.docx

10 document.docx
2  document.docx
30  document.docx

我知道我可以使用以下命令逐个删除这些零。

Get-ChildItem *.docx | Rename-Item -NewName { [string]($_.Name).Substring(1) }

但是我可以通过一个命令执行此操作吗?

2 个答案:

答案 0 :(得分:6)

使用正则表达式从文件名中删除前导零。

<div id="modalDescription" class="modal-body">
      Some information
</div>

document.getElementById("modalDescription").innerHTML="bulbasaur description"; // pure JS
$("#modalDescription").html("bulbasaur description") //with Jquery

Get-ChildItem *.docx | Rename-Item -NewName { $_.Name -replace '^0+' } 与字符串的开头(在本例中为文件名)匹配。 ^匹配一个或多个连续的零。

答案 1 :(得分:1)

另一种选择是

  • 用一个和替换多个空格
  • 将零填充到唯一的长度

Get-ChildItem [0-9]*.docx|
  Rename-Item -NewName {[regex]::Replace(($_.Name -replace ' +',' '),
                        '^\d+',{$args[0].Value.PadLeft(4,'0')})}

>gci *.docx

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2019-01-04     21:40              2 0002 document.docx
-a----       2019-01-04     21:40              2 0010 document.docx
-a----       2019-01-04     21:40              2 0030 document.docx