私は基本的に次のことを行うスクリプトを書いています:
テキストファイルからいくつかの引数を読み取ります。
DriveLetter ThreeLetterCode ServerName VolumeLetter Integer
例えば。W MSS SERVER01 C 1
これらの値は、フォルダの宛先W:\MSS\
と、次の命名規則で機能するファイル名を形成します。
SERVERNAME_VOLUMELETTER_VOL-b00X-iYYY.spi - Where The X is the Integer above
値YIは、後でインクリメンタルイメージ(バックアップ)の値であり、最新のインクリメンタルを計算する必要があるため、後で計算する必要があります。
したがって、現時点では->ファイル内の行をカウントし、この数の行をループします。
$lines = Get-Content -Path PostBackupCheck-Textfile.txt | Measure-Object -Line
for ($i=0; $i -le $lines.Lines; $i++)
このループ内で、現在見ている行、つまり行0、行1、行2を読み取るために、Get-Contentを実行する必要があります。これは、最初に書いた形式で複数の行があり、行をに分割するためです。上記の命名規則に見られるように、ファイルの各部分がa [0]、a [1]、a[2]にある配列。等
これは、これらを含むフォルダーを日付で並べ替え、最新のファイルを日付で並べ替え、その_iXXX.spi
部分を配列値に配置しa[X]
て、マウントする完全なファイル名を取得する必要があるためです。この値は置き換えられますiYYY.spi
Get-ChildItemを-Includeで実行する場合は、すべてを日付で並べ替える前に確認する必要があるため、少し複雑です。テキストファイルから指定された引数に一致するファイル名のみを含めます。
それで、
SERVER01_C_VOL-b001-iYYY.spi and not anything else.
i.e. not SERVER01_D_VOL-b001-iYYY.spi
次に、Get-ChildItem -Includeの並べ替えからiYYY値を取得し、それを適切な配列項目に配置します。
文字通りどこから始めればいいのかわからないので、どんなアイデアでも大歓迎です!
うまくいけば、私は十分に詳細に説明しました。また、Pastebinにコードを配置しました:http://pastebin.com/vtFifTW6