1

我试图让文件名看起来像这样:

焦点131021a.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
4

2 回答 2

3

使用 OP 的原始方法执行此操作的另一种方法:

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

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

于 2013-10-21T19:37:50.290 回答
3

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

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

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

于 2013-10-21T18:30:12.513 回答