1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PoweShellでファイル振り分け

Posted at

ファイルの移動を半自動化したかったんです(´・ω・`)
入力の値によって異なるフォルダへファイルを振り分けます。

ファイル振分.ps1

# 宛先フォルダ
$dstRoot = "C:\hoge\"

# 振分先
$dstPath1 = ""
$dstPath2 = ""
Write-Output " --------------------------------------------------"
Write-Output " 振分タイプ"
Write-Output "  1: あっち"
Write-Output "  2: こっち"
Write-Output "  3: そっち"
Write-Output "  4: どっち"
Write-Output " --------------------------------------------------"
$input = Read-Host "振分タイプを入力してください: "

# タイプに応じて振分先を変える
If ($input -eq 1) {
  # 1: あっち
  $dstPath1 = $dstRoot + "あっち\one"
  $dstPath2 = $dstRoot + "あっち\two"
} ElseIf ($input -eq 2) {
  # 2: こっち
  $dstPath1 = $dstRoot + "こっち\one"
  $dstPath2 = $dstRoot + "こっち\two"
} ElseIf ($input -eq 3) {
  # 3: そっち
  $dstPath1 = $dstRoot + "そっち\one"
  $dstPath2 = $dstRoot + "そっち\two"
} ElseIf ($input -eq 4) {
  # 4: どっち
  $dstPath1 = $dstRoot + "どっち\one"
  $dstPath2 = $dstRoot + "どっち\two"
} Else {
  # 1,2,3,4以外なら何もしない
  exit
}
# ファイルを移動
Get-ChildItem -Recurse -File -Include *.txt | ForEach-Object { Move-Item $_ $dstPath1 -force }
Get-ChildItem -Recurse -File -Include *.csv | ForEach-Object { Move-Item $_ $dstPath2 -force }

上記だけだと動かなかったので、別途.batを作成して実行ポリシーを渡す。

参考にさせて頂いたのは↓
PowerShell のスクリプトが実行できない場合の対処方法 #Windows - Qiita

ファイル振分.bat

PowerShell -ExecutionPolicy RemoteSigned .\ファイル振分.ps1

ファイル振分.batを実行すればプロンプトが上がり、
入力値に応じた振分先にファイルを移動してくれるようになりました。

めでたしめでたし。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?