2016-06-01 51 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」 ......文件夾中的。在所有這些文件夾中,在一個文件夾中有一個帶有「foo」字符串的.txt文件。而且,我需要獲取(返回)包含字符串「foo」的文件的路徑。

例如:如果此\ pr \ DU \ Extract \ PO \ F20160203「在該文本文件中包含.txt文件和」foo「,則應返回路徑\ pr \ DU \ Extract \ PO \ F20160203 \ test.txt「就像這樣。

我該如何做到這一點?任何示例示例都會有幫助。

回答

0

爲何使用/n?這是顯示行號,但你不需要它。相反,您需要獲取文件名,即/m。獲取它周圍的for得到完整的路徑:

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通常用於讀取包含文件的流水線,不要像那樣單獨調用它。

希望得到這個幫助。

相關問題