
以下のことをどうやって実行すればいいのか知りたいです(Windowsの場合)
c:\directory とすべてのサブディレクトリ内のすべてへのフルパスの合計文字数を調べる必要があります。使用したコマンドは次のとおりです。
dir /b /s c:\directory\ > output.csv
/B ベア形式を使用します (見出し情報や概要はありません)。
/S 指定されたディレクトリとすべてのサブディレクトリ内のファイルを表示します。
問題は、c:\directory が SVN チェックアウトであり、output.csv ファイルに表示したくない .svn-base ファイルが大量にあることです。出力をパイプしている output.csv にこれらの .svn または .svn-base ファイルが表示されないようにするには、DIR からの出力をフィルター処理するにはどうすればよいですか?
Excel を使用して output.csv の最初の列を検索し、「svn」を含む行を選択しようとしましたが、この csv ファイルには 30,000 を超える行が含まれているため、その方法ではすべてをフィルタリングするのに時間がかかる可能性があります。
これを実現するために使用できる、Windows 用の grep に似たものはありますか? grep GNUWin32 をダウンロードしましたが、使用しようとすると、ライブラリ ファイルが見つからないというエラーが表示されます。
また、DIR で /AH スイッチを使用しようとしましたが、何らかの理由で、各サブディレクトリに .svn フォルダーがまだ表示されます :( 隠しファイルを正しく表示しないスイッチを使用していない可能性があります。
答え1
cmd プロンプトでは、次のように実行します。
dir /b /s c:\directory\ | Findstr /V /I .svn > output.csv
Windows 7/8 を使用している場合、または Powershell をインストールしている場合は、Powershell を学習することをお勧めします。Powershell では、次のようにします。
Get-ChildItem . -exclude *.svn -recurse | Select-Object Name | Export-CSV .\output.csv -NoTypeInformation
答え2
代替ソリューション(サイズのコストについて)
dir svn export
WC を export-dir に実行し、この方法で .svn dir(s) を削除します。