PowerShell/バッチファイルを作成するプロンプト
中級
このプロンプトでできること
Windowsでのファイル整理、リネーム、バックアップなどを自動化するPowerShellスクリプトやバッチファイルを生成します。
プロンプト
以下の処理を行うWindowsスクリプトを作成してください。
【やりたいこと】
{日本語で処理内容を説明}
【対象のファイル/フォルダ】
{パス、ファイルの種類、条件}
【実行タイミング】
{手動/タスクスケジューラで定期実行}
【期待する結果】
{処理後の状態}
【スクリプト形式】
{PowerShell / バッチファイル(.bat)/ どちらでも}
以下を含めて回答してください:
1. スクリプトコード(日本語コメント付き)
2. 保存方法(ファイル名、拡張子)
3. 実行方法
4. タスクスケジューラ設定(定期実行の場合)
5. 注意点・よくあるエラー
6. カスタマイズ可能な箇所
カスタマイズ例
- 「ログも出力して」と追記
- 「処理前に確認ダイアログを出して」と追記
- 「サブフォルダも含めて処理して」と追記
出力例
PowerShellスクリプト
やりたいこと:ダウンロードフォルダのファイルを拡張子別に整理
コード
# ファイル整理スクリプト # ダウンロードフォルダのファイルを拡張子別フォルダに移動 # 対象フォルダを設定 $sourceFolder = "$env:USERPROFILE\Downloads" # 拡張子とフォルダ名の対応 $categories = @{ ".pdf" = "PDF" ".xlsx" = "Excel" ".xls" = "Excel" ".docx" = "Word" ".doc" = "Word" ".jpg" = "Images" ".png" = "Images" ".zip" = "Archives" } # ファイルを取得して処理 Get-ChildItem -Path $sourceFolder -File | ForEach-Object { $extension = $_.Extension.ToLower() # 対応するフォルダ名を取得 if ($categories.ContainsKey($extension)) { $destFolder = Join-Path $sourceFolder $categories[$extension] # フォルダがなければ作成 if (!(Test-Path $destFolder)) { New-Item -ItemType Directory -Path $destFolder | Out-Null } # ファイルを移動 Move-Item -Path $_.FullName -Destination $destFolder -Force Write-Host "移動: $($_.Name) -> $($categories[$extension])" } } Write-Host "整理完了!"保存・実行方法
- メモ帳で上記コードを貼り付け
- 「organize-downloads.ps1」として保存
- 右クリック →「PowerShellで実行」
タスクスケジューラ設定(毎日18時に自動実行)
- タスクスケジューラを開く
- 「基本タスクの作成」
- トリガー:毎日 18:00
- 操作:プログラムの開始
- プログラム:
powershell.exe- 引数:
-ExecutionPolicy Bypass -File "C:\Scripts\organize-downloads.ps1"