
モバイル デバイスのすべての写真とビデオはクラウドにバックアップされ、Dropbox の「カメラ アップロード」機能を使用してラップトップに同期されます。すべての写真とビデオは、Dropbox フォルダーの「カメラ アップロード」フォルダーに追加されます。
これらすべてをユーザー フォルダー内の [写真] フォルダーと [ビデオ] フォルダーに移動したいと考えています。私は Windows 8 を使用していますが、この質問は Windows 7 にも当てはまる可能性があります。
理想的には、写真をフォルダに移動したいですMy Pictures
。写真は日付という名前のフォルダにあり、そのフォルダは年という名前のフォルダにある必要があります。たとえば、写真が2013年10月4日に撮影された場合は、My Pictures/2013/2013-10-04/
写真自体は、写真が撮影された日付と時刻に名前を変更し、必要に応じて元のファイル名を続けます。たとえば、写真が2013年10月4日14:05:07に撮影され、IMG003.jpgという名前だった場合、My Pictures/2013/2013-10-04/2013-10-04 14.05.07 IMG003.jpg
ビデオも同様に機能しますが、フォルダに保存されますMy Videos
。たとえば、2013年10月1日17:03:01に撮影されたビデオは、My Videos/2013/2013-10-01/2013-10-01 17.03.01 VIDEO003.mpg
このプロセスを自動化できるアプリはありますか? または、バッチ ファイルを使用して実行できますか?
答え1
Powershell がプリインストールされている Windows 7/8 を使用していると仮定します。
この Powershell スクリプトは、ソース フォルダー ( $source
) から宛先フォルダー ( $dest
) にファイルをコピーします。配列を使用して、画像のみやビデオのみなど、
必要なファイルをフィルターします。$filter
- 新しいフォルダは次のように変更されます
<destination_folder\old_subfolders\YYYY\YYYY-MM-DD>
- 新しいファイル名は次のように変更されます
<YYYY-MM-DD hh.mm.ss oldfilename.extension>
すべての行はコメント化されており、意図的にエイリアスは使用していません。
### set input folder
$source = "C:\My Dropbox\Camera Uploads"
### set output folder
$dest = "C:\Users\<USERNAME>\My Pictures"
### set which file types to include/copy
$filter = @("*.png", "*.jpg", "*.jpeg")
### retrieve all files from source folder and pipe them to copy
Get-ChildItem $source -include $filter -recurse | foreach {
### build new destination folder string (syntax: destination folder + old subfolders + year + year-month-day)
$destSub = $_.directoryname.Replace($source, $dest +'\'+ $_.CreationTime.Year +'\'+ $_.CreationTime.ToString("yyyy-MM-dd"))
$destSub
### check if new destination folder exists, otherwiese create new subfolder(s)
if (-not (Test-Path -literalpath $destSub)) { New-Item $destSub -Type Directory }
### build new file name string (syntax: new destination folder + year-month-date hours.minutes.seconds + oldname.extension)
$destName = $destSub +'\'+ $_.CreationTime.ToString("yyyy-MM-dd hh.mm.ss") + ' ' + $_.name
$destName
### copy source file to new file name
copy-item -literalpath $_.Fullname -destination $destName
}
まず、 コマンドを使用してスクリプトをテストしますcopy-item
。後でcopy-item
に置き換えることができますmove-item
。