2

get-childitem、format-table、format-string、out-file の PowerShell の組み合わせを試してみました。

ft -wrap -autoformat やその他のさまざまなオプションで何を試しても、get-childitem を呼び出すと、name プロパティが合計 35 文字 (拡張子を除くと 30 文字) に切り捨てられます。たとえば、次のようになります。

$dir = Get-ChildItem 'c:\mypath\*' | ft -Wrap -AutoSize -Property name

サンプル結果 (注: 省略記号はありませんが、完全な拡張子):

myfilenametruncatesat30Charact.xlsx

106 文字で切り捨てられるフルネームの同じ動作。

そのため、get-childitem は、フォーマット コマンドレットにパイプする前に、ある種のバッファーによって制約されているようです...

Windows パスに 260 文字の制限があるというリファレンスを見たことがありますが、これらのパスの長さは 100 ~ 120 の範囲です。

Powershell が切り捨てられる理由についてのヒントや手がかりをいただければ幸いです。

4

1 に答える 1

6

使用できます

Get-ChildItem 'c:\mypath\*' | Select -ExpandProperty Name

オブジェクトの選択

-ExpandProperty

選択するプロパティを指定し、そのプロパティの展開を試みる必要があることを示します。プロパティ名にはワイルドカードを使用できます。

たとえば、指定されたプロパティが配列の場合、配列の各値が出力に含まれます。プロパティにオブジェクトが含まれている場合、そのオブジェクトのプロパティが出力に表示されます。

編集

PS C:\Users\Lieven\AppData\Local\Temp> gci myfilenametruncatesat30CharactAndThenSome.xlsx | ft -Wrap -AutoSize -Property
 name

Name
----
myfilenametruncatesat30CharactAndThenSome.xlsx
于 2014-08-15T13:10:03.527 に答える