ファイルコピー 同ディレクトリ構造からファイルをコピーする。(ミラーコピー?)
■今後の課題
1.相対パスに対応させる。
2.パスの暗号化(ほぼ必要ないかも)
■コード
$root = "C:\target" $fdir = "C:\mirrordir" $tdir = "C:\copytmp" filter FileCopy () { $relativepath = $_.FullName.TrimStart($root) $fpath = Join-Path $fdir $relativepath $tpath = Join-Path $tdir $relativepath $tdirtmp = Split-Path $tpath -Parent if (Test-Path $fpath) { if (-not (Test-Path $tdirtmp)) { mkdir -path $tdirtmp } copy $fpath $tdirtmp } } dir -Path $root -Recurse | ? { $_.Attributes -ne "Directory" } | FileCopy
■参考サイト
関数、フィルタ、スクリプト
PowerShellでパス文字列を操作する
06.ファイルをコピーする
PowerShellのGet-ChildItemコマンドレットでファイル名の一覧を取得する(応用編)
PowerShell の演算子とキーワード
■コード作成理由
上書き対象のファイルをサーバ上にアップされているファイルとマージさせたい&バックアップを行うために作成
■コードを記述する上での観点
1.省略文字(Alias)が設定されているものを積極的に使用しつつ、実態の名前も把握しておく
2..NET Framework のライブラリは極力使用を控えつつ、PowerShellで用意されたコマンドレットを使用する。
3.パス関連を扱う場合は出来る限り文字列操作ではなく、専用のライブラリを使用し、最後に Test-Path を行う。