2017-01-09 13 views
0

x(現在は250)より大きいパス長を持つネットワークドライブ上のすべてのファイルをテキストファイルに出力しようとしています。パスの長さがxより大きい出力ファイル

私が掲示再実行し、以下のソリューションを使用しようとしている

How do I find files with a path length greater than 260 characters in Windows?

In powershell cmd /c dir /s /b |? {$_.length -gt 250} 

このソリューションは、動作しているようですが、2つの問題があります。それはで表示され

  • をPowershellウィンドウは、ファイルに出力されません。
  • Powershellはウィンドウの結果をフォーマットして、1つのファイルパスが複数の行に表示されます。 Powershellの結果をExcelの文書にコピーして貼り付けようとしましたが、Excelの複数の行に貼り付けられていて、それぞれのファイルパスが1行に必要です

私はこのソリューションをrerun次のようになります。

これで、上記の2つの問題は解決しましたが、別の問題が発生しました。私はそれを実行すると、 'ディレクトリ名xxxxxxxxが長すぎます'というエラーメッセージがPowershellウィンドウに表示されます。ファイルをチェックすると、すべてのファイルが出力されていないことがわかります。誰も私がこれをどのように達成することができるかという考えを持っていますか? 乾杯。

+0

を、なぜあなたは 'cmd.exe''からdir'を実行していますか? – alroc

+0

私はもう何をすべきか分からないので、rerunによって提供されたソリューションにちょうど従っています。しかし、私はPowershellとcmdのどちらにもよく知られていません。exeコマンド、だから考えてみてください – Naz

答えて

0

ファイル名が長すぎるため、基本的に名前の変更やファイルのプロパティの変更ができません。あなたのbig_named_fileがある同じ場所にWinRARのファイルを作成します

単純化されたソリューションは、ファイルの名前を変更することです。

次に、上のボタンを押すと、big_named_fileがwinrarコンソール内に表示されます。

プレスF2そこに行くと、名前を変更することができます。

注:これはあなたのファイルが長すぎる問題を解決する方法です。

+0

名前を変更したいファイルを探しているので、ファイルの名前を変更できません。私は彼らがどこにいるのか知りません。ドライブのサイズはTB以上で、何十万ものファイルがあり、手動で見つけるのは難しいです。 – Naz

+0

@ Naz:実際には、ファイル名が長すぎるため、ここではスクリプトは動作しません。あなたはTBのサイズを持っているので、残っているオプションは何とか名前を変更することだけです。これは、名前を変更するよう提案した最善の方法です。私はそれをタックルする他の方法があるとは思わない。少なくとも名前を変更する部分を行うことができるサードパーティのツールを探してください。唯一、PowerShellはピッチができその後 。 –

+0

こんにちはRanadip、私はファイルがそれらの名前を変更することができるようになっている場所を知らないので、私はこの方法を使用して、それらの名前を変更することはできません。まず、私は私が私 – Naz

0

get-childitemを使用するのではなく、次のようにファイルのパスを$ files変数に格納します。このファイルのパスは、好きなようにファイルにダンプできます。export-csvあなたがExcelでそれを見たいと思うように。

$files = Get-ChildItem 'yourpath' -recurse | where {$_.fullname.length -gt 250} | select -ExpandProperty fullname 
$files | export-csv 'yourfilename' -noclobber 
+0

これを実行すると、Powershellでエラーが発生します。 Get-ChildItem:指定されたパス、ファイル名、またはその両方が長すぎます。完全修飾ファイル名は260文字未満で、ディレクトリ名は248文字未満でなければなりません。 行:1 char:10 + $ files = Get-ChildItem '\\ server \ folder' -recurse | {$ _。フル... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~ + CategoryInfo:ReadError:(\\ server \ fold ... itch - 19.12.12:String)[Get-ChildItem]、PathTooLongException + FullyQualifiedErrorId:DirIOError、Microsoft.PowerShell.Commands.GetChildItemCommand – Naz

0

これは実際のPowerShellソリューションではありません。その代わりに、再帰的にネットワーク経路を横断してlongfiles.txtに長いファイルを出力する。この試してください:あなたはPowerShellのソリューションを探しているなら

gci \\someserver\somedir -r | ? { $_.FullName.length -gt 250 } | select -expandproperty fullname > longfiles.txt 
+0

このコマンドを実行したときのPowershellのエラー: gci:指定されたパス、ファイル名、またはその両方が長すぎます。完全修飾ファイル名は260文字未満で、ディレクトリ名は248文字未満でなければなりません。 行目:1文字:1 + gci \\ server \ folder -r | ? {$ _。FullName.length -gt 250} | ReadError:... + ~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfoを選択 - 21.09(\\サーバー\ ...茎を折ります。 12:文字列)は、Get-ChildItemコマンドレット]を、PathTooLongException + FullyQualifiedErrorId:DirIOError、Microsoft.PowerShell.Commands.GetChildItemCommand – Naz

関連する問題