在文件名中查找字符串

时间:2011-02-14 10:08:58

标签: batch-file

我正在编写一个批处理文件,其中我已经读取了目录中所有文件的文件名,然后在文件名中查找特定的字符串。我能够获取文件名但无法找到在文件名中搜索特定字符串的方法。

e.g。该文件的名称是abc_account_march_2010.csv。我必须检查文件名中是否包含单词“account”,如果是,则重命名该文件。

这是我为获取文件名所做的工作。

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

%completepath% - 是我的目录/文件夹的路径。

感谢。

3 个答案:

答案 0 :(得分: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
)

答案 1 :(得分:0)

也许grep可以帮到你?

答案 2 :(得分:0)

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