web-dev-qa-db-ja.com

PowerShellの(dir / b> files.txt)と同等

dir/b > files.txt

ユニコードの記号を保持するためには、PowerShellで行う必要があると思います。

21
Get-ChildItem | Select-Object -ExpandProperty Name > files.txt

以下:

ls | % Name > files.txt

ただし、cmdで同じことを簡単に行うことができます。

cmd /u /c "dir /b > files.txt"

/uスイッチは、ファイルにリダイレクトされたものをUnicodeとして書き込むようにcmdに指示します。

29
Joey

Get-ChildItemには、実際にはdir /bに相当するフラグが既に設定されています。

Get-ChildItem -name(またはdir -name

15

PSHではdir(エイリアスGet-ChildItem)はオブジェクトを提供するため( 別の回答 で説明されているように)、必要なプロパティを選択する必要があります。 Select-Object(エイリアスselect)を使用して、元のオブジェクトのプロパティのサブセットを持つカスタムオブジェクトを作成します(または追加のプロパティを追加できます)。

ただし、これはフォーマット段階で行うことができますおそらく最も簡単です

dir | ft Name -HideTableHeaders | Out-File files.txt

ftformat-tableです。)

files.txtで別の文字エンコードが必要な場合(out-fileはデフォルトでUTF-16を使用します)-encodingフラグを使用して、以下を追加することもできます。

dir | ft Name -HideTableHeaders | Out-File -append -encoding UTF8 files.txt
4
Richard

簡単に言えば:

dir -Name > files.txt
3
Jet

Powershellはオブジェクトを扱うため、パイプ内の各オブジェクトを処理する方法を指定する必要があります。

このコマンドは、各オブジェクトの名前のみを出力します。

dir | ForEach-Object { $_.name }
3
tenpn

この素晴らしい投稿を見つけましたが、サブディレクトリにも必要でした:

DIR /B /S >somefile.txt

使用する:

Get-ChildItem -Recurse | Select-Object -ExpandProperty Fullname | Out-File Somefile.txt

または短いバージョン:

ls | % fullname > somefile.txt