2016-06-01 17 views
0

を使用してファイルパスを返す私はこのような特定の文字列を検索するには、「FINDSTR」コマンドを使用しています:フォルダ内のファイルから文字列を検索し、コマンド・ライン・ウィンドウ

findstr /s /n /i /p foo * 

しかし、そのはfilestr私にエラーを示します。 "パス名"を開くことができません

私は正確なコマンドの使用を得るためにこのリンク(http://ss64.com/nt/findstr.html)を参照しました。

私の.txtファイルは "\ pr \ DU \ Extract \ PO"のように位置し、 "PO"の中に "F20160203"、 "F20160204"などのような日付のフォルダがあります。

.txtファイルには、これらの「F20160203」、「F20160204」...フォルダがあります。これらのフォルダのうち、1つのフォルダには文字列 "foo"を持つ.txtファイルがあります。そして、私は文字列 "foo"を含むファイルを持つそのフォルダのパスを取得(返す)する必要があります。

例:this \ pr \ DU \ Extract \ PO \ F20160203 "はテキストファイル内に.txtファイルと" foo "があり、パス\ pr \ DU \ Extract \ PO \ F20160203を返します。 \ test.txt "のようになります。

どうすればこの問題を解決できますか?どんなサンプル・サンプルも役に立ちます。

答えて

0

なぜ/nを使用しますか?行番号を表示するのですが、必要はありません。代わりに、ファイル名は/mです。その周りforはフルパス取得するには、Get:あなたのタスクを達成するために

for /f "tokens=*" %%i in ('findstr /s /i /p /m "Foo" *') do echo %%~fi 
+0

これは私にエラーを与えます:今度は%%私は予期しなかったです。 – AskMe

+0

'%% i'はバッチファイルで使用します。コマンドラインで '%i'(と'%〜fi')を使用 – Stephan

+0

これらのコマンドを使用してXMLファイルから文字列を取得することはできますか?そうでなければ、サブフォルダにあるXMLファイルから文字列を読み込む方法は? – AskMe

0

を、私はあなたがこのコマンドでPowerShellを使用好む:

のGet-ChildItemコマンドレット-recurse | findstr -pattern "foo" | |グループパス名前を選択

検索を高速化するには、ディレクトリをPOフォルダに変更する必要があります。 findstrは、ファイルの読み込みにパイプラインで使用されることがよくあります。

このヘルプが必要です。

関連する問題