文件夹名称中带有变量和破折号的测试路径

时间:2018-07-03 18:45:14

标签: powershell

我有一组文件夹,有一个类似的命名方案 03 - March,依此类推。

我需要测试路径,如果为true,则无法获取引号或转义正确。 这是我的代码

$year = Get-Date -Uformat %Y
$month = Get-Date -Format MMMMMMMM

Test-Path "C:\thisyear\$month - $year"

我也尝试过

Test-Path "C:\thisyear\$month '- $year"

那也不起作用

2 个答案:

答案 0 :(得分:3)

您可以使用-Format的{​​{1}}参数将任何字符作为文字(或用mklement0的注释引用文字部分),方法是使用反斜杠将其转义,所以这个脚本:

Get-Date

将输出

$Folder = Get-Date -F 'C:\\yyyy\\MM - MMM'

If (!(Test-Path $Folder)){
    "create folder {0}" -f $folder
    #  MD $Folder | Out-Null
} else {
   "folder {0} exists" -f $folder
}

创建文件夹的命令被注释掉,以使其删除create folder C:\2018\07 - Jul

答案 1 :(得分:2)

您可以使用Get-Date-Format参数来生成所需的日期格式。

您似乎想要一个两位数字的年份yy,与月份的全名-隔开MMMM

$Date = Get-Date -Format "yy - MMMM"
Test-Path "C:\thisyear\$Date"

MSDN page has the full list可用的格式运算符。