LoginSignup
0
0

【Powershell】カレントディレクトリ配下のファイル一覧取得

Last updated at Posted at 2024-04-08

はじめに

Powershellでファイル一覧を取得するとき

  1. サブディレクトリ内のファイルも対象に(再帰的に):基本
  2. ディレクトリは一覧から除外する(ファイルのみ)
  3. 1行1ファイルで(絶対パス)
  4. 絶対パスだと長いので相対パスに
  5. 更新日時も出したい

と、条件を追加していった各段階のコマンドと実行結果例。

確認環境

OS: Windows 10
PowerShellバージョン:以下2種類

  • 5.1.19041.4170
  • 7.3.4

実行ディレクトリ

サクラエディタのディレクトリで実行した結果を載せてます。
keyword配下が多かったので、少し減らして実行してます。

実行例のカレントディレクトリ
PS > cd -LiteralPath "C:\Program Files (x86)\sakura"
PS > pwd

Path
----
C:\Program Files (x86)\sakura


PS >

コマンドまとめ

1. 再帰的に
Get-ChildItem -Recurse
2. ファイルのみ
Get-ChildItem -Recurse -File
3. 絶対パス
Get-ChildItem -Recurse -File | %{$_.FullName}
4. 相対パス
Get-ChildItem -Recurse -File | %{($_.FullName).Replace((Get-Location).Path,'.')}
4-b. 相対パス2
Get-ChildItem -Recurse -File -Name
5. 更新日時+相対パス
Get-ChildItem -Recurse -File | %{(Get-Date $_.LastWriteTime -Format "yyyy/MM/dd HH:mm:ss") + " " + ($_.FullName).Replace((Get-Location).Path,'.')}

Alias使用時

Aliasとオプションの省略系で少し短くしたコマンド

1. 再帰的に
ls -R
2. ファイルのみ
ls -R -File
3. 絶対パス
ls -R -File | %{$_.FullName}
4. 相対パス
ls -R -File | %{($_.FullName).Replace((pwd).Path,'.') }
4-b. 相対パス2
ls -R -File -Name
5. 更新日時+相対パス
ls -R -File | %{(Get-Date $_.LastWriteTime -Format "yyyy/MM/dd HH:mm:ss") + " " + ($_.FullName).Replace((pwd).Path,'.') }

【参考】

Get-ChildItem の Alias
PS > Get-Alias -Definition Get-ChildItem

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           dir -> Get-ChildItem
Alias           gci -> Get-ChildItem
Alias           ls -> Get-ChildItem


PS >
Get-Location の Alias
PS > Get-Alias -Definition Get-Location

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           gl -> Get-Location
Alias           pwd -> Get-Location


PS >

1. 基本

コマンド

Get-ChildItem -Recurse

実行例

PS > Get-ChildItem -Recurse


    ディレクトリ: C:\Program Files (x86)\sakura


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2024/04/07     23:06                keyword
d-----        2021/07/10     17:28                license
-a----        2019/01/30     11:42         590848 bregonig.dll
-a----        2020/01/12      0:11        3387918 ctags.exe
-a----        2020/05/30      3:08         172071 macro.chm
-a----        2020/05/30      3:08          60645 plugin.chm
-a----        2020/05/30      3:08        2572017 sakura.chm
-a----        2020/05/30      3:10        1654272 sakura.exe
-a----        2020/05/30      3:09           1021 sakura.exe.ini
-a----        2020/05/30      3:09           1001 sakura.exe.manifest
-a----        2020/05/30      3:10         229888 sakura_lang_en_US.dll
-a----        2021/07/10     17:28          32391 unins000.dat
-a----        2021/07/10     17:27        1192857 unins000.exe


    ディレクトリ: C:\Program Files (x86)\sakura\keyword


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2020/05/30      3:09           2905 ABAP4.kwd
-a----        2020/05/30      3:09          10929 ActionScript.kwd
-a----        2020/05/30      3:09           1222 AHK.col
-a----        2020/05/30      3:09          13679 AHK.khp
-a----        2020/05/30      3:09            218 AHK.rkw
-a----        2020/05/30      3:09           2092 wsh.kwd
-a----        2020/05/30      3:09           3562 xul-attr.kwd
-a----        2020/05/30      3:09           1012 xul.kwd


    ディレクトリ: C:\Program Files (x86)\sakura\license


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2021/07/10     17:28                bregonig
d-----        2021/07/10     17:28                ctags
-a----        2020/05/30      3:08            949 LICENSE


    ディレクトリ: C:\Program Files (x86)\sakura\license\bregonig


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2019/01/30     11:22           5586 bsd_license.txt
-a----        1999/11/24      2:29           5353 perl_license.txt
-a----        2006/08/23     15:01          11901 perl_license_jp.txt


    ディレクトリ: C:\Program Files (x86)\sakura\license\ctags


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2020/01/12      0:06          18007 COPYING
-a----        2020/01/12      0:06          10936 COPYING.MinGW-w64-runtime.txt
-a----        2020/01/12      0:06           1289 Copyright.libxml2
-a----        2020/01/12      0:06           1081 LICENSE.janssen
-a----        2020/01/12      0:06           1058 LICENSE.libyaml


PS >

2. ファイルのみ(ディレクトリごと)

コマンド

Get-ChildItem -Recurse -File

実行例

PS > Get-ChildItem -Recurse -File


    ディレクトリ: C:\Program Files (x86)\sakura


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2019/01/30     11:42         590848 bregonig.dll
-a----        2020/01/12      0:11        3387918 ctags.exe
-a----        2020/05/30      3:08         172071 macro.chm
-a----        2020/05/30      3:08          60645 plugin.chm
-a----        2020/05/30      3:08        2572017 sakura.chm
-a----        2020/05/30      3:10        1654272 sakura.exe
-a----        2020/05/30      3:09           1021 sakura.exe.ini
-a----        2020/05/30      3:09           1001 sakura.exe.manifest
-a----        2020/05/30      3:10         229888 sakura_lang_en_US.dll
-a----        2021/07/10     17:28          32391 unins000.dat
-a----        2021/07/10     17:27        1192857 unins000.exe


    ディレクトリ: C:\Program Files (x86)\sakura\keyword


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2020/05/30      3:09           2905 ABAP4.kwd
-a----        2020/05/30      3:09          10929 ActionScript.kwd
-a----        2020/05/30      3:09           1222 AHK.col
-a----        2020/05/30      3:09          13679 AHK.khp
-a----        2020/05/30      3:09            218 AHK.rkw
-a----        2020/05/30      3:09           2092 wsh.kwd
-a----        2020/05/30      3:09           3562 xul-attr.kwd
-a----        2020/05/30      3:09           1012 xul.kwd


    ディレクトリ: C:\Program Files (x86)\sakura\license


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2020/05/30      3:08            949 LICENSE


    ディレクトリ: C:\Program Files (x86)\sakura\license\bregonig


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2019/01/30     11:22           5586 bsd_license.txt
-a----        1999/11/24      2:29           5353 perl_license.txt
-a----        2006/08/23     15:01          11901 perl_license_jp.txt


    ディレクトリ: C:\Program Files (x86)\sakura\license\ctags


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2020/01/12      0:06          18007 COPYING
-a----        2020/01/12      0:06          10936 COPYING.MinGW-w64-runtime.txt
-a----        2020/01/12      0:06           1289 Copyright.libxml2
-a----        2020/01/12      0:06           1081 LICENSE.janssen
-a----        2020/01/12      0:06           1058 LICENSE.libyaml


PS >

3. 絶対パス(1行1ファイル)

コマンド

Get-ChildItem -Recurse -File | %{$_.FullName}

実行例

PS > Get-ChildItem -Recurse -File | %{$_.FullName}
C:\Program Files (x86)\sakura\bregonig.dll
C:\Program Files (x86)\sakura\ctags.exe
C:\Program Files (x86)\sakura\macro.chm
C:\Program Files (x86)\sakura\plugin.chm
C:\Program Files (x86)\sakura\sakura.chm
C:\Program Files (x86)\sakura\sakura.exe
C:\Program Files (x86)\sakura\sakura.exe.ini
C:\Program Files (x86)\sakura\sakura.exe.manifest
C:\Program Files (x86)\sakura\sakura_lang_en_US.dll
C:\Program Files (x86)\sakura\unins000.dat
C:\Program Files (x86)\sakura\unins000.exe
C:\Program Files (x86)\sakura\keyword\ABAP4.kwd
C:\Program Files (x86)\sakura\keyword\ActionScript.kwd
C:\Program Files (x86)\sakura\keyword\AHK.col
C:\Program Files (x86)\sakura\keyword\AHK.khp
C:\Program Files (x86)\sakura\keyword\AHK.rkw
C:\Program Files (x86)\sakura\keyword\wsh.kwd
C:\Program Files (x86)\sakura\keyword\xul-attr.kwd
C:\Program Files (x86)\sakura\keyword\xul.kwd
C:\Program Files (x86)\sakura\license\LICENSE
C:\Program Files (x86)\sakura\license\bregonig\bsd_license.txt
C:\Program Files (x86)\sakura\license\bregonig\perl_license.txt
C:\Program Files (x86)\sakura\license\bregonig\perl_license_jp.txt
C:\Program Files (x86)\sakura\license\ctags\COPYING
C:\Program Files (x86)\sakura\license\ctags\COPYING.MinGW-w64-runtime.txt
C:\Program Files (x86)\sakura\license\ctags\Copyright.libxml2
C:\Program Files (x86)\sakura\license\ctags\LICENSE.janssen
C:\Program Files (x86)\sakura\license\ctags\LICENSE.libyaml
PS >

4. 相対パス

5. 更新日時+相対パス につなげるための相対パス取得コマンド

コマンド

Get-ChildItem -Recurse -File | %{ ($_.FullName).Replace((Get-Location).Path,'.') }

実行例

PS > Get-ChildItem -Recurse -File | %{ ($_.FullName).Replace((Get-Location).Path,'.') }
.\bregonig.dll
.\ctags.exe
.\macro.chm
.\plugin.chm
.\sakura.chm
.\sakura.exe
.\sakura.exe.ini
.\sakura.exe.manifest
.\sakura_lang_en_US.dll
.\unins000.dat
.\unins000.exe
.\keyword\ABAP4.kwd
.\keyword\ActionScript.kwd
.\keyword\AHK.col
.\keyword\AHK.khp
.\keyword\AHK.rkw
.\keyword\wsh.kwd
.\keyword\xul-attr.kwd
.\keyword\xul.kwd
.\license\LICENSE
.\license\bregonig\bsd_license.txt
.\license\bregonig\perl_license.txt
.\license\bregonig\perl_license_jp.txt
.\license\ctags\COPYING
.\license\ctags\COPYING.MinGW-w64-runtime.txt
.\license\ctags\Copyright.libxml2
.\license\ctags\LICENSE.janssen
.\license\ctags\LICENSE.libyaml
PS >

4-b. 相対パス2(参考)

パスが取得できれば他の情報は不要、という場合の取得コマンド

コマンド

Get-ChildItem -Recurse -File -Name

実行例

PS > Get-ChildItem -Recurse -File -Name
bregonig.dll
ctags.exe
macro.chm
plugin.chm
sakura.chm
sakura.exe
sakura.exe.ini
sakura.exe.manifest
sakura_lang_en_US.dll
unins000.dat
unins000.exe
keyword\ABAP4.kwd
keyword\ActionScript.kwd
keyword\AHK.col
keyword\AHK.khp
keyword\AHK.rkw
keyword\wsh.kwd
keyword\xul-attr.kwd
keyword\xul.kwd
license\LICENSE
license\bregonig\bsd_license.txt
license\bregonig\perl_license.txt
license\bregonig\perl_license_jp.txt
license\ctags\COPYING
license\ctags\COPYING.MinGW-w64-runtime.txt
license\ctags\Copyright.libxml2
license\ctags\LICENSE.janssen
license\ctags\LICENSE.libyaml
PS >

5. 更新日時+相対パス

コマンド

Get-ChildItem -Recurse -File | %{ (Get-Date $_.LastWriteTime -Format "yyyy/MM/dd HH:mm:ss") + " " + ($_.FullName).Replace((Get-Location).Path,'.') }

実行例

PS > Get-ChildItem -Recurse -File | %{ (Get-Date $_.LastWriteTime -Format "yyyy/MM/dd HH:mm:ss") + " " + ($_.FullName).Replace((Get-Location).Path,'.') }
2019/01/30 11:42:26 .\bregonig.dll
2020/01/12 00:11:06 .\ctags.exe
2020/05/30 03:08:42 .\macro.chm
2020/05/30 03:08:44 .\plugin.chm
2020/05/30 03:08:46 .\sakura.chm
2020/05/30 03:10:34 .\sakura.exe
2020/05/30 03:09:00 .\sakura.exe.ini
2020/05/30 03:09:00 .\sakura.exe.manifest
2020/05/30 03:10:36 .\sakura_lang_en_US.dll
2021/07/10 17:28:58 .\unins000.dat
2021/07/10 17:27:08 .\unins000.exe
2020/05/30 03:09:00 .\keyword\ABAP4.kwd
2020/05/30 03:09:00 .\keyword\ActionScript.kwd
2020/05/30 03:09:00 .\keyword\AHK.col
2020/05/30 03:09:00 .\keyword\AHK.khp
2020/05/30 03:09:00 .\keyword\AHK.rkw
2020/05/30 03:09:00 .\keyword\wsh.kwd
2020/05/30 03:09:00 .\keyword\xul-attr.kwd
2020/05/30 03:09:00 .\keyword\xul.kwd
2020/05/30 03:08:58 .\license\LICENSE
2019/01/30 11:22:14 .\license\bregonig\bsd_license.txt
1999/11/24 02:29:36 .\license\bregonig\perl_license.txt
2006/08/23 15:01:00 .\license\bregonig\perl_license_jp.txt
2020/01/12 00:06:40 .\license\ctags\COPYING
2020/01/12 00:06:42 .\license\ctags\COPYING.MinGW-w64-runtime.txt
2020/01/12 00:06:42 .\license\ctags\Copyright.libxml2
2020/01/12 00:06:42 .\license\ctags\LICENSE.janssen
2020/01/12 00:06:42 .\license\ctags\LICENSE.libyaml
PS >

参考

リファレンス

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