0

我有一个文件夹,其中包含由 3rd 方程序生成的以下格式的文件。

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 等

我想仅使用文件 dd_mm_yyyy 中的日期格式并忽略时间戳 nn_nn_nn.pdf 从 7 天前复制其中一个文件

因此,使用以前的脚本来测试我是否作弊并将文件格式设为 Database_Server1_tempdb_22_10_2012.pdf

以下代码工作正常。

$过去天 = -7

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

$filename -match "Database_Server1_tempdb_" + $pastdate.Day + " " + $pastdate.Month + " " + $pastdate.Year+ ".pdf"

Copy-Item -Path "V:\Capacity Manager Size reports\$($filename)" "\Server2\report_Archive"

任何人都可以帮助它工作,所以我不需要作弊,它只是忽略 dd_mm_yy 之后的任何内容以进行匹配。

谢谢

4

1 回答 1

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"
于 2012-10-30T08:14:59.067 回答