背景
「.gitignoreで除外後のファイル一覧を抽出したいな……」「コミットして別フォルダでチェックアウトすればいいかもしれない」「もうちょっとこう、楽したい」「なんか-Recurseでやってもフラットにコピーされるな……ファイル指定だからか」
前提
- コマンド実行時のカレントディレクトリはプロジェクトフォルダ内(git ls-filesするので)
- gitでファイルがコミット済みであること(git ls-filesで一覧を取得するので)
- PowerShell (PSVersion:5.1.22621.2506)
コマンド
# コピー先パス、パスを結合するので末尾は'\'にすること $target="..\copy_dest\" git ls-files | % { $dest = $target + $_ $destDir=Split-Path $dest # フォルダがなければ作成 if (!(Test-Path $destDir)) { mkdir $destDir } Copy-Item $_ -Destination $dest -Force }