Поиск строки в имени файла - PullRequest
1 голос
/ 14 февраля 2011

Я пишу командный файл, в котором я прочитал имена всех файлов в каталоге и затем ищу определенную строку в именах файлов.Я могу получить имена файлов, но не могу найти способ поиска определенной строки в имени файла.

например, имя файла abc_account_march_2010.csv.Я должен проверить, содержит ли имя файла слово «account» или нет, если это так, переименуйте файл.

Это то, что я сделал, чтобы получить имя файла.

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

% completepath% - это путь к моей папке / папке.

Спасибо.

Ответы [ 3 ]

4 голосов
/ 14 февраля 2011

Вы можете просто использовать подстановочный знак, который включает account.

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

Если вам все еще нужно обработать все файлы * .csv и дополнительно переименовать те, в именах которых есть «account», то вот как вы можете это проверить:

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
)
0 голосов
/ 14 февраля 2011
FOR /F "usebackq delims= " %%m IN (`findstr /c:"-stringtolookfor" "*.csv"`) DO 
(
   set first_word_in_this_line=%%m
)
0 голосов
/ 14 февраля 2011

Может быть grep может вам помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...