从文件夹中的所有文件中删除数字

时间:2016-08-12 19:14:10

标签: powershell batch-file ssis

我有一个文件夹,中间有一个随机数的文件。它们采用以下格式:

Input-4535344534x-results.xml
Input-4535344534y-log.xml
Input-4535344534z-main.xml

有没有办法通过.bat文件删除数字或者我可以作为ssis包的一部分执行的操作,以便我留下:

Input-x-results.xml
Input-y-log.xml
Input-z-main.xml

我尝试在powershell中运行它,但它似乎不起作用

Get-ChildItem -Filter *.xml | Rename-Item -NewName {$_.Name -replace '^[0-9_]+'}

由于

2 个答案:

答案 0 :(得分:0)

ls Input-*.xml -n | % { mv $_ ($_ -replace '\d+') }

答案 1 :(得分:0)

这样的事情应该有效:

Get-ChildItem -Filter *.xml | 
Foreach-Object {
    $newName = $_.Name -replace "(\w+-)(\d+)(\w+)",'$1$3'
    Rename-Item -Path $_.FullName -NewName $newName
}

更新:简化

Get-ChildItem -Filter *.xml | Rename-Item -NewName {$_.Name -replace "(\w+-)(\d+)(\w+)",'$1$3'}

如果有帮助,请告诉我。