我有这个重命名文件的PowerShell脚本。以下是字符串操作代码的一部分(不是我的实际代码,只是为了显示问题):
$text="String1.txt"
$text
$text.trimend(".txt")
$date=Get-Date -format yyyyMMdd
$text + $date
$newFile = $text.trimend(".txt") + "_" + $date + ".bak"
$newFile
$NewFile1 = $newFile.TrimEnd("_$date.bak") + ".bak"
$NewFile1
结果是:
String1.txt
String1
String1.txt20131104
String1_20131104.bak
String.bak
为什么1
末尾的String1
也被删除了?我期待结果为String1.bak
。
答案 0 :(得分:5)
trimend()方法接受一个字符数组(不是字符串)参数,并将修剪出现在字符串末尾的数组中的所有字符。
我通常使用-replace运算符来修剪字符串值:
$text="String1.txt"
$text
$text = $text -replace '\.txt$',''
$text
String1.txt
String1
答案 1 :(得分:0)
根据PowerShell to remove text from a string的答案开发,我正在使用这些正则表达式来删除未知类型的扩展名,文件名中的其他位置可能为.
:
$imagefile="hi.there.jpg"
$imagefile
hi.there.jpg
$imagefile -replace '\.([^.]*)$', ''
hi.there
$imagefile -replace '([^.]*)$', ''
hi.there.