2011-02-14 79 views
1

我在寫一個批處理文件,其中我已經讀取了目錄中所有文件的文件名,然後在文件名中查找特定的字符串。我能夠獲取文件名,但無法找到一種方法來搜索文件名中的特定字符串。查找文件名中的字符串

例如該文件的名稱是abc_account_march_2010.csv。我必須檢查文件名中是否包含單詞「account」,如果是,則重命名文件。

這是我所做的獲取文件名。

FOR /R %completepath% %%G IN (*.csv) DO (
    echo %%~nG 
) 

%completepath% - 是我的目錄/文件夾的路徑。

謝謝。

回答

0

也許grep可以幫到你嗎?

0
FOR /F "usebackq delims= " %%m IN (`findstr /c:"-stringtolookfor" "*.csv"`) DO 
(
    set first_word_in_this_line=%%m 
) 
4

您可以簡單地使用包含account的通配符。

FOR /R %completepath% %%G IN (*account*.csv) DO (
    echo %%~nG 
) 

如果您仍需要處理所有*的.csv文件,另外重命名這些,有「帳戶」在他們的名字,那麼這裏就是你可以檢查:

FOR /R %completepath% %%G IN (*.csv) DO call :process "%%~nG" 
GOTO :EOF 

:process 
SET %name%=%~1 
SET chkname=%name:*account=?% 
IF "%chkname:~0,1%"=="?" (
    ECHO %name% -- this is account file! 
) ELSE (
    ECHO %name% -- this is NOT account file 
)