2012-10-29 30 views
0

我有一个文件夹,其文件格式如下,由第三方程序生成。Powershell通配符排除文件名的末尾

Database_Server1_tempdb_29_10_2012_00_22_00.pdf Database_Server1_tempdb_28_10_2012_00_21_14.pdf Database_Server1_tempdb_27_10_2012_00_10_00.pdf 等 等

我要复制这些文件中的一个从7天前仅使用文件dd_mm_yyyy dateformat和忽略时间戳nn_nn_nn.pdf

因此,使用以前的脚本,如果我骗,使文件格式 Database_Server1_tempdb_22_10_2012.pdf测试

以下代码正常工作。

$ pastdays = -7

$ pastdate = [日期时间] :: Now.AddDays($ pastdays)

$文件名-match “Database_Server1_tempdb_” + $ pastdate.Day + “” + $ pastdate.Month + “” + $ pastdate.Year + “.PDF”

拷贝项目-Path “V:\容量管理器大小报告\ $($文件名)” “\服务器2 \ report_Archive”

任何人都可以帮助使它工作,所以我不需要作弊,它只是点燃矿石无论是在dd_mm_yy之后进行匹配。

感谢

回答

0

你做错了。您正在尝试猜测的名字,而不是仅仅从文件夹中获得的所有文件,并选择相匹配的一个,比如这个:

$pastdays = -7 
$pastdate = [datetime]::Now.AddDays($pastdays) 
$files = Get-ChildItem "V:\Capacity Manager Size reports\" 
$filename = ($files | Where-Object {$_.Name -like "Database_Server1_tempdb_" + $pastdate.Day + "_" + $pastdate.Month + "_" + $pastdate.Year+ "*.pdf"}) 
Copy-Item -Path $filename.FullName "\Server2\report_Archive" 
+0

优秀谢谢你。 – MoOriginal