僕が使っているのは、MSが出しているSyncToyというツール。
これを利用するとフォルダ間でファイル同期を行ってくれる。手軽に使えるのでなかなか良い
SyncToy
@IT SyncToyツールで手軽にバックアップを行う
その過程で上記ソフトを実行するよう設定する。
1. SyncToyをインストール
USBメモリ上にSyncToyをインストールする。ここでは、以下のフォルダに展開した。
E:\program\buso-sync\x64\
e:をUSBメモリをさした場合のドライブ。
2.利用するPCでPowerShellのプロファイルをいじる
プロファイルにもいくつか種類があります。
TechNetマガジン プロファイルの力
http://64.4.10.145/ja-jp/magazine/cc895642
- %windir%\system32\WindowsPowerShell\v1.0\profile.ps1 コンピュータのすべてのユーザーとすべてのシェルに適用されるプロファイル。
- %windir%\system32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1 コンピュータのすべてのユーザーと Microsoft.PowerShell シェルに適用されるプロファイル。
- %UserProfile%\Documents\WindowsPowerShell\profile.ps1 現在のユーザーとすべてのシェルに適用されるプロファイル。
- %UserProfile%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 現在のユーザーと Microsoft.PowerShell シェルに適用されるプロファイル。
僕は、普通のprofile.ps1を編集してる。
USBメモリをさした場合に、該当のスクリプトがあった場合に処理を実行するよう、以下を記述
profile.ps1
if ( $(test-path "e:\config\config.ps1")) { . e:\config\config.ps1 write-host "++++ config アクセス完了 ++++" }
もっぱらconfig.ps1にUSBメモリをさした場合に実行するプロファイルとして記述している。
今回は、ここにSyncToyの呼び出しをするよう追記する。
3.SyncToyを利用するための準備をする
フォルダ同期の受け皿を作っておく。ここでは下記のパスとする。
C:\Users\buso\Desktop\buso-sync
次に、あらかじめ同期するフォルダペアを登録しておく。
詳しくは上記の@ITの記事を参考にしてもらいたい。
ここではフォルダペア名を"powershell"として、
C:\Users\buso\Desktop\buso-sync と、USBメモリ先である E: を同期するよう設定した。
4.config.ps1からSyncToyを呼び出す
config.ps1にSyncToyを呼び出すよう追加する。
e:\config\config.ps1
if ($env:computername -eq "buso-pc") { E:\program\buso-sync\x64\SyncToyCmd.exe -R powershell }
上記は"buso-pc" に接続した場合の設定。
SyncToyCmd.exe でフォルダペア名を指定すると、登録した設定に応じて同期される。
接続するコンピュータに応じてフォルダペア名を変えて、同期方法を変更したりするなど応用も可能。
実際にUSBメモリをさした場合にPowerShellを起動したときに走る処理。
この他、僕はaliasを読み込んだりさらにスクリプトを呼びだしたりと
config.ps1 に色々設定を書いてます。
スポンサーリンク