如何在PowerShell中后跟字母数字字符的字符串中打印变量?

时间:2013-10-21 18:27:07

标签: powershell

我正在尝试将文件名显示为:

focus131021a.wav

我已将日期声明为变量:

$DateFilename = get-date -format "yyMMdd"

但是,在保留最后一个“a”字符时,我无法将该变量转换为字符串。以下是许多失败的试验中的一些......

PS C:\script> $FileName3 = "focus'$DateFilename`a.wav"
PS C:\script> echo $FileName3
focus'131021.wav
PS C:\script> $FileName3 = "focus$DateFilename'a.wav"
PS C:\script> echo $FileName3
focus131021'a.wav
PS C:\script> $FileName3 = "focus$DateFilename`a.wav"
PS C:\script> echo $FileName3
focus131021.wav
PS C:\script> $FileName3 = "focus$DateFilename'aa.wav"
PS C:\script> echo $FileName3
focus131021'aa.wav
PS C:\script> $FileName3 = "focus$DateFilename'a.wav"
PS C:\script> echo $FileName3
focus131021'a.wav

2 个答案:

答案 0 :(得分:3)

最简单的方法是使用格式:

$filename3 = 'focus{0:yyMMdd}a.wav' -f (get-date)

否则你最终会得到疯狂的转义序列,嵌套的引号或乱七八糟的字符串。

答案 1 :(得分:3)

使用OP的原始方法实现此目的的另一种方法是:

$DateFilename = get-date -format "yyMMdd"
$FileName3 = "focus${DateFilename}a.wav"

您可以在双引号字符串中的变量名称周围使用{}来将变量名称与其他文本区分开来。