2011-07-05 21 views
6

この単純なPowerShellスクリプトを動作させるのは苦労しています。私はグーグルでは、答えを見つけることができません。PowerShellを使用してファイル名とコピーを一致させる

ご覧のとおり、送信元と送信先の場所を指定しています。

$ filedate変数は、ファイル名に日付が含まれているため、datedayを取得するためにdateaddを実行しています。

$ filter変数には、日付部分を含めて、私が検索している文字列があります。

Get-ChildItemコマンドは単独で機能しますが、フィルタを適用すると何も返されません。これを機能させるために何が欠けていますか?

$source = "C:\MSSQL.1\Backup\" 
$destination = "D:\MSSQL.2\Backup\" 
$filedate = (get-date).AddDays(-1).tostring('yyyyMMdd') 
$filter = "FULL_(local)_Product_" + $filedate + "*" 
Get-ChildItem -Path $source -filter $filter | Copy-Item -Destination $destination 
+0

最も単純な結論は、フィルタが一致していないということです。質問を編集して、次のものを追加してください:$ filterの文字列が実際に等しいものと、一致しなければならないファイルの名前。 –

+0

私にとってうまく動作します。あなたはどうしますか:gci $ source "FULL_(local)_Product_ *" –

答えて

13

Where-Object cmdlet-matchオペレータ使用してファイルのリストをフィルタリングしてみてください。あなたはまだ何も結果を取得していない場合は

$source = "C:\MSSQL.1\Backup\" 
$destination = "D:\MSSQL.2\Backup\" 
$filedate = (Get-Date).AddDays(-1).ToString("yyyyMMdd") 
$filter = "FULL_(local)_Product_$filedate" 
Get-ChildItem -Path $source | Where-Object { $_.Name -match $filter } | Copy-Item -Destination $destination 

を、我々はフィルタ自体を見てする必要があります。

関連リソース:

+0

これはうまくいきます - ありがとうございました – mealies

+0

|コピーアイテム - デスティネーション$ destination –

関連する問題