このブログのはてなブックマーク数 このエントリーをはてなブックマークに追加

知らなきゃ絶対損するPCマル秘ワザ

知らなくて損したPC情報とかを分かりやすくメモする個人ブログ。
『月,水,金』の週3回更新!(予定)

Windows:ファイル,フォルダーの名前を一覧で書き出す

このエントリーをはてなブックマークに追加
操作画面


こんにちは、さち です。

先日、とあるフォルダーにあるすべてのファイルの名前を
テキストに書き出したいことがありました。
ファイル数は50個くらいです。

ファイルをすべてコピーしてテキストファイルにペーストしたら
ファイル名が書き出せるかな?
と思ったのですが、そんなに甘くありませんでした。

1個ずつコピペしていっても何とかなる数ですが
時間がかかりそうな単純作業だし気が進みません……。
ということで、PC にやってもらいます。




「Windows PowerShell」を起動する

「Windows PowerShell」は
簡単にいうと、文字で Windows に指示を出せる機能。
Windows7 以降に標準搭載されていています。
(「コマンドプロンプト」の後継のようなもの)

PowerShell を起動してみます。

  1. 「Windows + X」キーを押してクイックリンクを開き、「Windows PowerShell」をクリック。
    「スタート」ボタン→「Windows PowerShell」からでも起動できます。
    (PowerShell の操作でユーザー権限に問題がある場合は「管理者」付きの方を使用)
    PowerShell 操作画面

  2. PowerShell の画面が表示されます。
    (行頭の表示は環境によって異なります)
    PowerShell 操作画面




ファイル名の一覧を書き出す

PowerShell で「コマンドレット」という指示を使うことで
PC に仕事をさせることができます。

  1. 例として、こちらのフォルダー(D:\sample)を使ってみます。
    操作画面

  2. Dドライブ直下に「list.txt」というファイルに書き出す場合
    PowerShell に次のように記述して、「Enter」キーを押します。
    dir D:\sample -name | Out-File D:\list.txt

  3. 指定した場所(D:\list.txt)にテキストファイルができています。
    操作画面

  4. テキストファイルの中身はこのとおり。
    ファイル,フォルダーの名前の一覧が書き出されています。
    操作画面

「ファイル」または「フォルダー」だけを書き出したい場合は
PowerShell の記述を次のようにすることで可能です。
#ファイルだけを書き出す
dir D:\sample -name -include *.* | Out-File D:\list.txt

#フォルダーだけを書き出す
dir D:\sample -name -exclude *.* | Out-File D:\list.txt

ただし、簡易的な方法なので
拡張子がないファイル,名前の中に「.(ドット)」を含むフォルダー等は
意図した通りの動きをしてくれません。
(厳密に区別したい場合は PowerShell を詳しく勉強して下さい)




使用したコマンドレットの簡単な解説

ファイル名さえ書き出せればそれで良いという人は
この項は読まなくていいです。


■「Get-ChildItem」コマンドレット
「Get-ChildItem」は、ディレクトリ(フォルダー)の情報を取得するコマンドレット。
エイリアス(省略,別表記)を使って「dir」「ls」「gci」と記述することも可能。
次のようなルールで記述されます。
Get-ChildItem (フォルダーの)場所 オプション
#「場所」「オプション」は省略可能
#「場所」を省略した場合、現在(行頭に表示)のフォルダーが使用される

#エイリアスを使った場合
dir 場所 オプション
ls 場所 オプション
gci 場所 オプション

#ファイルの名前だけを取得
-name

#特定の「文字列」を含む/含まないファイルだけを取得
-include 文字列
-exclude 文字列
#「文字列」にはワイルドカード「*」を使用可能

#(サブ)フォルダーの中身も取得
-recurse

#「D:\sample」にあるファイルで名前に拡張子(xxx.xxx)を含むものを取得
Get-ChildItem D:\sample -name -include *.*


■「Out-File」コマンドレット
「Out-File」は、データをテキストファイルに保存するコマンドレット。
次のようなルールで記述されます。
Out-File (書き出すファイルの)場所 オプション
#「オプション」は省略可能

#上書きでなく追記をする
-append

#文字コードを指定する
-encoding 文字コード
#文字コードは「Unicode」「UTF8」「ASCII」などが使用可能

#「D:\sample」のファイル名一覧を「D:\list.txt」に追記する
dir D:\sample -name | Out-File D:\list.txt -append


これら2個のコマンドレットを「|(パイプライン)」で結ぶことで
前のコマンドレットの実行結果を、次のコマンドレットに引き渡しています。
つまり、「Get-ChildItem(dir)」でファイル名一覧を取得し
それを「Out-File」が受け取ってテキストファイルに書き出しています。



【参考サイト】

   → PowerShell Cmdlet - Get-ChildItem - ubweb.info
   → PowerShell Cmdlet - Out-File - ubweb.info
   → 互換性のあるエイリアス - Microsoft




このエントリーをはてなブックマークに追加




管理人だけが読めるコメントにする(返信はしません)
【お知らせ】
  • コメントは承認制です。反映に時間がかかります。
  • スパムコメント防止のため一部ホストを規制中です。
  • URLを含む投稿はできません。必要な場合は最初のhを削って下さい。
  • 記事に直接関係ない個人のトラブルにはお答えできません。
  • Android は使用経験がないので質問を頂いても答えられません。
  • その他詳細はこちら





記事別の週間アクセス数ランキングです。こちらの記事もぜひ読んでみて下さい。

2008-2019 知らなきゃ絶対損するPCマル秘ワザ  無断転載禁止

ブログパーツ