2011-02-14 76 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 
)