2017-12-20 11 views
-2

私は、毎日作成されたファイルを次の有効日の日付でコピーするためのスクリプトを作成しようとしています。翌日の日付のフォルダをコピーする

今日彼は時々彼が2、3日 2017年12月23日 または で作成することができ、明日の日付で 2017年12月21日

を作成し2017-12- 24

$source = "C:\folder\yyy-mm-dd" 
$item = "OpenPos_yyymmdd.txt" 
$dest = "e:\tmp\" 

$vl = Get-ChildItem -Path $source | Sort CreationTime -Descending | Select Name -First 1 


for ($i = 1; $i -le 7; $i++) 
{ 
$d = ((Get-Date).AddDays(+ $i)) 
$d2 = $d.ToString("yyy-mm-dd") 

if ($d2 -eq $vl) 
{ 

} 

} 
+0

_「次の有用な日の日付でファイルを7回見つけよう」_どういう意味ですか?それははっきりしない。 – Manu

+0

次の日のファイルを見つけるまで7回試してください 私はスクリプトの中でもう少し前に進むことができます –

+0

残念ながら、あなたが助けたいものが明確になるように、そのステートメントを改訂する必要があります。 –

答えて

0

あなたがする必要があるのは、作成日が必要な場合は、最初のファイルを選択するのではなく、各ファイルを通過することです。そこで私はforeach loopを作成して、サーバーが作成した各ファイルを調べました。

-recurseを使用すると、必要に応じてフォルダを通過できます。

お探しのとおりです。

$source = "C:\folder\yyy-mm-dd" 
$dest = "e:\tmp\" 

Get-ChildItem -Path $source | %{ 

    $creationdate = ([datetime]$_.CreationTime).ToString("yyyy-MM-dd") 

    for ($i = 1; $i -le 7; $i++) 
    { 
     $d = ((Get-Date).AddDays($i)).ToString("yyyy-MM-dd") 

     if ($d -eq $creationdate) 
     { 
      Copy-Item -path $_.FullName -destination $dest 
     } 
    } 
} 
+0

日付でファイルを作成することができます| %{ $ CreationDateプロパティ=([日時] $ _。CREATIONTIME)。ToStringメソッド( "YYYY-MM-DD") 私はフィルタリングする必要があるファイルは、この1 あるBmfTF_OpenPos_2017-12-22.TXT 私は唯一のフィルタリング2017-12-22.txt –

+0

@ShabayL をピックアップする必要があります申し訳ありません、ファイル名の日付です。 –

+0

あなたは、フォルダを通過してファイルを読む必要があると言いました。 1つのファイルのみを実行しようとしていますか?すべてのファイル形式が同じですか?サーバーが作成するフォルダからファイルをコピーしようとしているだけであることを説明して質問を編集して、将来の人があなたが求めているものを理解できるようにしてください。 – ShanayL

関連する問題