dir/b > files.txt
ユニコードの記号を保持するためには、PowerShellで行う必要があると思います。
Get-ChildItem | Select-Object -ExpandProperty Name > files.txt
以下:
ls | % Name > files.txt
ただし、cmd
で同じことを簡単に行うことができます。
cmd /u /c "dir /b > files.txt"
/u
スイッチは、ファイルにリダイレクトされたものをUnicodeとして書き込むようにcmd
に指示します。
Get-ChildItem
には、実際にはdir /b
に相当するフラグが既に設定されています。
Get-ChildItem -name
(またはdir -name
)
PSHではdir
(エイリアスGet-ChildItem
)はオブジェクトを提供するため( 別の回答 で説明されているように)、必要なプロパティを選択する必要があります。 Select-Object
(エイリアスselect
)を使用して、元のオブジェクトのプロパティのサブセットを持つカスタムオブジェクトを作成します(または追加のプロパティを追加できます)。
ただし、これはフォーマット段階で行うことができますおそらく最も簡単です
dir | ft Name -HideTableHeaders | Out-File files.txt
(ft
はformat-table
です。)
files.txt
で別の文字エンコードが必要な場合(out-file
はデフォルトでUTF-16を使用します)-encoding
フラグを使用して、以下を追加することもできます。
dir | ft Name -HideTableHeaders | Out-File -append -encoding UTF8 files.txt
簡単に言えば:
dir -Name > files.txt
Powershellはオブジェクトを扱うため、パイプ内の各オブジェクトを処理する方法を指定する必要があります。
このコマンドは、各オブジェクトの名前のみを出力します。
dir | ForEach-Object { $_.name }
この素晴らしい投稿を見つけましたが、サブディレクトリにも必要でした:
DIR /B /S >somefile.txt
使用する:
Get-ChildItem -Recurse | Select-Object -ExpandProperty Fullname | Out-File Somefile.txt
または短いバージョン:
ls | % fullname > somefile.txt