0

サードパーティのプログラムによって作成された次の形式のファイルを含むフォルダがあります。

Database_Server1_tempdb_29_10_2012_00_22_00.pdfDatabase_Server1_tempdb_28_10_2012_00_21_14.pdfDatabase_Server1_tempdb_27_10_2012_00_10_00.pdfなど

ファイルdd_mm_yyyyの日付形式のみを使用し、タイムスタンプnn_nn_nn.pdfを無視して、7日前のこれらのファイルの1つをコピーしたい

したがって、前のスクリプトを使用して、ファイルをチートしてこの形式にするかどうかをテストしますDatabase_Server1_tempdb_22_10_2012.pdf

次のコードは正常に機能します。

$ pastdays = -7

$ pastdate = [datetime] :: 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の後にあるものを無視して一致させます。

ありがとう

Mo

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 に答える