0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows Power Shell でフラットコピー

Posted at

windowsのファイルコピーであるフォルダ以下にあるすべてのファイルを、フォルダ構造なしに”ファイルのみ”別のフォルダへコピーするには?

しばらくmac/linuxでWindowsは事務処理だけになってまして、初めてPowerShell使いました。
以下の方法で、有料アプリを使わずにスクリプトでフラットコピーできました。

1. 以下のスクリプトファイルを作成

flatcopy.ps1

$sourcePath = "D:\MEDIA_PICTURES\"
$destinationPath = ".\PICTURES\"

# コピー先フォルダが存在しない場合は作成
if (-not (Test-Path -Path $destinationPath)) {
    New-Item -ItemType Directory -Path $destinationPath | Out-Null
}

# ファイルを再帰的に取得して、フォルダ階層を無視してコピー
Get-ChildItem -Path $sourcePath -Recurse -File | ForEach-Object {
    $destinationFile = Join-Path -Path $destinationPath -ChildPath $_.Name
    Copy-Item -Path $_.FullName -Destination $destinationFile -Force
}

2. 実行

パーミッションエラーにならないように以下のように実行

>PowerShell -ExecutionPolicy RemoteSigned .\flatcopy.ps1

課題:

  • 重複するファイル名の処理

(以上です)

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?