Powershell文件名检查

时间:2014-11-20 13:12:18

标签: powershell powershell-v2.0

我需要验证复制到目的地的文件是否存在,文件格式如下:

SuperFile_yyyyMMdd_randomstring.txt

我试图做的是以下内容:

$FileDate = Get-Date -format yyyyMMdd
$FileExists = (Test-Path "\\UNC\TestShare\SuperFile_$FileDate_*")

但是,复制与第一部分 SuperFile _ 匹配的所有文件,而不仅仅是与日期匹配的文件。此文件每天创建,我想忽略任何其他不包含今天日期的文件。我曾尝试进行Get-ChildItem查询并将其输入到我的支票中,但它从未返回任何文件
所以我的问题是复制和验证我刚才复制的文件存在于目的地
谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

_是变量名的有效字符,因此表达式$FileDate_已被定义,未定义。这可以通过使用子表达式来防止:

$FileDate = Get-Date -format yyyyMMdd
$FileExists = (Test-Path "\\UNC\TestShare\SuperFile_$($FileDate)_*")

或将变量名称放在花括号中:

$FileDate = Get-Date -format yyyyMMdd
$FileExists = (Test-Path "\\UNC\TestShare\SuperFile_${FileDate}_*")