PNG画像名の一覧を取得するには、対象フォルダーを明示してファイル名を読み取ります。
まず画面かUTF-8のテキストへ出力し、必要なときにクリップボードへコピーできます。
コマンドプロンプトで画像名を確認する
C:\Practice\画像 資料を実際のパスに置き換え、CMDで次の1行を実行します。
cd /d "C:\Practice\画像 資料" && dir /b /a-d /o:n "*.png"
cd /dはドライブも切り替え、&&は移動に成功した場合だけ一覧の取得へ進みます。
dirの/bは名前だけ、/a-dはファイルだけ、/o:nは名前順で、サブフォルダーは対象に含めません。
日本語を含む一覧をUTF-8で保存する
ZIPは空の練習フォルダーへ展開し、下の手順で指定するサブフォルダーを開いて使います。
Windows PowerShell 5.1用のPS1はUTF-8(BOM付き)で保存します。
BATのRemoteSigned指定は起動したプロセスだけに適用し、ユーザーやPC全体の実行ポリシーは変更しません。
ダウンロードしたPS1が署名エラーになる場合は内容と出所を確認し、対象ファイルのプロパティからブロックを解除します。
組織のポリシーで実行できない場合は管理者へ確認し、ポリシーを回避して実行しないでください。
下のコードをpng-names.ps1として保存し、-Targetへフォルダーか、その中のファイルを1つ指定します。
param([Parameter(Mandatory=$true)][string]$Target,
[string]$Output,
[switch]$ToClipboard)
$ErrorActionPreference = 'Stop'
if (-not $Output) { $Output = Join-Path $PSScriptRoot 'png-names.txt' }
$item = Get-Item -LiteralPath $Target
$folder = if ($item.PSIsContainer) { $item.FullName } else { $item.DirectoryName }
$names = @(Get-ChildItem -LiteralPath $folder -File -Force |
Where-Object Extension -ieq '.png' | Sort-Object Name | Select-Object -ExpandProperty Name)
if (-not $names.Count) { throw 'No PNG files; clipboard unchanged' }
if ($ToClipboard) {
Set-Clipboard -Value ($names -join [Environment]::NewLine)
} else {
if (Test-Path -LiteralPath $Output) { throw 'Output exists; choose a new filename' }
$text = ($names -join [Environment]::NewLine) + [Environment]::NewLine
[IO.File]::WriteAllText([IO.Path]::GetFullPath($Output), $text, [Text.UTF8Encoding]::new($true))
}
$names
powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -File "png-names.ps1" -Target "C:\Practice\画像 資料"
PS1と同じ場所へpng-names.txtがUTF-8(BOM付き)で作成され、a.pngと日本語 ! & [x].PNGの2行を確認できます。
フォルダー内の.pngと.PNGを対象とし、サブフォルダーの画像やJPGは含めません。
送るメニューからクリップボードへ取得する
- png-names.ps1と下のBATをpng-names.batとして同じ場所へ保存する
- Win+Rでshell:sendtoを開き、png-names.batへのショートカットを置く
- 対象フォルダーか、その中のファイルを1つ選び、送るからショートカットを実行する
- テキストエディターへ貼り付け、PNG名の一覧を確認する
@echo off
setlocal DisableDelayedExpansion
if "%~1"=="" exit /b 1
powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -File "%~dp0png-names.ps1" -Target "%~1" -ToClipboard
exit /b %errorlevel%
最初の選択項目だけを使い、ファイルならその親フォルダーを一覧の対象にします。
クリップボードの以前の内容は置き換わるため、残したい内容を先に保存してください。
一覧が出ないときの確認と戻し方
対象パスが存在しない場合やPNGがない場合はエラーで止まり、クリップボードは変更しません。
テキスト出力先が既にある場合は上書きせず停止するため、-Outputで新しい絶対パスを指定します。
送るから実行して別の場所の一覧になる場合は、ショートカットのリンク先と、PS1がBATの隣にあるかを確認します。
画像ファイルは変更しないため、戻す操作は不要で、SendToをやめる場合は登録したショートカットだけを外します。
2026年10月2日にWindowsでUTF-8出力とクリップボードの日本語一致、選択ファイルの親を使うBATを検証しました。
Explorerの送るメニューをクリックする操作自体は今回の検証に含みません。
仕様:Microsoft公式 cd、dir。
業務効率化に役立つその他のツールや設定は、以下のリンクから確認できます。

Windowsバッチの記事は、ほかにもあります。




まとめ
対象パスを明示し、PNG名の一覧をUTF-8ファイルかクリップボードへ取得します。
