Powershell中的字符串操作问题TrimEnd()

时间:2013-11-04 01:24:27

标签: string powershell

我有这个重命名文件的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

2 个答案:

答案 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.