Skip to content

Instantly share code, notes, and snippets.

@defaultcf
Last active January 17, 2022 15:22
Show Gist options
  • Save defaultcf/baab40e3f4543cca89037eb7b03326cd to your computer and use it in GitHub Desktop.
Save defaultcf/baab40e3f4543cca89037eb7b03326cd to your computer and use it in GitHub Desktop.
Backup VRChat photos
$irfan_exe = "C:\Program Files\IrfanView\i_view64.exe"
$exiftool_exe = "C:\Users\rsato\Downloads\exiftool-12.38\exiftool.exe"
$reference_dir = "C:\Users\rsato\Pictures\VRChat\"
$target_dir = "C:\Users\rsato\Dropbox\写真\VRChat\"
$script_dir = $(Split-Path $MyInvocation.MyCommand.Path) + "\"
# ディレクトリ作成
$reference_dir_list = Get-ChildItem -Directory -Path $reference_dir
$target_dir_list = Get-ChildItem -Directory -Path $target_dir
$directorys_to_create = Compare-Object @($reference_dir_list | Select-Object) @($target_dir_list | Select-Object) -Property BaseName `
| Where-Object { $_.SideIndicator -eq "<=" }
| ForEach-Object { $_.BaseName }
foreach($directory in $directorys_to_create) {
md $($target_dir + $directory)
}
# 未バックアップファイルを抽出
$reference_list = Get-ChildItem -File -Path $reference_dir -Recurse
$target_list = Get-ChildItem -File -Path $target_dir -Recurse
$files_to_backup = Compare-Object @($reference_list | Select-Object) @($target_list | Select-Object) -Property BaseName -PassThru `
foreach($file in $files_to_backup) {
$parent = $(Split-Path $(Split-Path $file.FullName -Parent) -Leaf) + "\"
$target_file = $target_dir + $parent + $file.BaseName + ".tif"
& $irfan_exe $file.FullName /tifc=1 /advancedbatch /ini=$script_dir /convert=$target_file
& $exiftool_exe "-DateTimeOriginal<FileCreateDate" -charset filename="" -overwrite_original $target_file
}
; UNICODE FILE - edit with care ;-)
[Batch]
AdvCrop=0
AdvCropX=0
AdvCropY=0
AdvCropW=0
AdvCropH=0
AdvCropC=0
AdvResize=0
AdvResizeOpt=0
AdvResizeW=0.00
AdvResizeH=0.00
AdvResizeL=0.00
AdvResizeS=0.00
AdvResizeMP=0.00
AdvResample=1
AdvResizePerc=0
AdvResizePercW=0.00
AdvResizePercH=0.00
AdvDPI=0
AdvResizeUnit=0
AdvResizeRatio=1
AdvNoEnlarge=0
AdvNoShrink=0
AdvResizeOnDpi=0
AdvResizeMaxSize=0
AdvResizeMinSize=0
AdvCanvas=0
AdvAddText=0
AdvWatermark=0
AdvReplaceColor=0
AdvAddFrame=0
AdvUseBPP=0
AdvBPP=0
AdvUseFSDither=1
AdvDecrQuality=0
AdvAutoRGB=0
AdvHFlip=0
AdvVFlip=0
AdvRLeft=0
AdvRRight=0
AdvGray=0
AdvInvert=0
AdvSharpen=0
AdvGamma=0
AdvContrast=0
AdvBrightness=0
AdvSaturation=0
AdvColR=0
AdvColG=0
AdvColB=0
AdvSharpenVal=1
AdvGammaVal=0.00
AdvContrastVal=0
AdvBrightnessVal=0
AdvSaturationVal=0
AdvColRVal=0
AdvColGVal=0
AdvColBVal=0
AdvDelOrg=0
AdvOverwrite=0
AdvSubdirs=0
AdvSaveOldDate=1
AdvAllPages=1
UseAdvOptionsOrder=0
AdvFineR=0
AdvFineRVal=0.00
AdvBlur=0
AdvBlurVal=1
AdvMedian=0
AdvMedianVal=3
AdvRbg=0
AdvBgr=0
AdvBrg=0
AdvGrb=0
AdvGbr=0
AdvAutoCrop=0
AdvOptionsOrder=
[BatchText]
AddText=
TextCoord=0;0;100;100;
Corner=0
Orientation=0
TranspText=1
SemiTranspText=0
FitColorW=1
OutlineFill=0
Outline=0
Emboss=0
Shadow=0
Canvas=0
FontColor=65280
TxtBgkr=16777215
FontParam=-13|0|0|0|400|0|0|0|0|1|2|1|49|
Font=Courier
Outline1=
[BatchCanvas]
CanvL=10
CanvR=10
CanvT=10
CanvB=10
CanvInside=1
CanvColor=0
CanvMethod=0
CanvW=1920
CanvH=1080
CanvCorner=4
CanvRatio=1
CanvRatioEdit=1.00
CanvBlur=1
CanvBlurVal=50
CanvGammaVal=1.00
[BatchReplaceColor]
ReplaceColorOld=0
ReplaceColorNew=0
ReplaceColorTol=0
[BatchWatermark]
Option=0
Coord=0;0;100;100;
Corner=0
Transp=33
Color=65535
Image=no image
[BatchFrame]
FrameStyle=0
FrameSizes=20,0,0,0
FrameColors=13158600,0,0,2105376
[TIFF]
Save Compression=1

Backup VRChat Photos

VRChat で撮影した写真を Dropbox のディレクトリにコピーして EXIF の撮影日を付けるスクリプト。

MITライセンスです。万が一このスクリプトを使用して損害が発生しても責任を負いません。

Requirements

  • IrfanView
    • png ファイルから tiff ファイルへの変換のために使用
  • ExifTool
    • EXIF を変更するために使用

Usage

$irfan_exe, $exiftool_exe, $reference_dir, $target_dir をそれぞれ正しいパスに修正してください。 あとはスクリプトを実行するだけ。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment