Batch file 如果包含子字符串,请检查文件名
我浏览目录并通过for循环检查所有文件Batch file 如果包含子字符串,请检查文件名,batch-file,cmd,Batch File,Cmd,我浏览目录并通过for循环检查所有文件 for %%f in (*.doc ) do ( echo full name: %%f echo name without suffix: %%~nxf ) 例如像“1234 important.doc”这样的文件 我需要以某种方式识别'-'和'.doc'之间的内容,并将此值设置为变量标志,以便下一个处理 IF [$flag] == [*"-important"*] ( echo important ) 你对如何做有什么建议吗? 可能在文
for %%f in (*.doc ) do (
echo full name: %%f
echo name without suffix: %%~nxf
)
例如像“1234 important.doc”这样的文件
我需要以某种方式识别'-'和'.doc'之间的内容,并将此值设置为变量标志,以便下一个处理
IF [$flag] == [*"-important"*] (
echo important
)
你对如何做有什么建议吗?
可能在文件名上使用一些正则表达式?这里是一个使用文件名的示例:
forfiles /M *important* /C "cmd /c echo @file : important"
下面是一个也使用文件名的示例:
forfiles /M *important* /C "cmd /c echo @file : important"
下面是一个搜索包含字符串的文件的示例。
STR
变量可以设置为正在查找的任何值
SET "STR=*-important*"
FOR /F "delims=" %%f IN ('DIR /B "%STR%" 2^>NUL') DO (
ECHO %%~f
)
下面是一个搜索包含字符串的文件的示例。
STR
变量可以设置为正在查找的任何值
SET "STR=*-important*"
FOR /F "delims=" %%f IN ('DIR /B "%STR%" 2^>NUL') DO (
ECHO %%~f
)
如果文件名中只有一个连字符,则以下代码有效。它使用嵌套FOR命令以连字符分隔基本文件名
@echo off
for %%F in (*.doc ) do (
echo full name: %%F
echo name without suffix: %%~nF
for /F "tokens=2 delims=-" %%G IN ("%%~nF") DO (
IF /I "%%G"=="important" (echo File is important) else Echo File is not important
)
)
第二组代码使用FINDSTR
命令检查基本文件名是否以要查找的字符串结尾。然后使用条件执行来确定执行哪个echo命令。如果上一个命令成功,则使用双符号AND执行。如果上一个命令未成功,则使用双管道执行
for %%F in (*.doc ) do (
set "flag="
echo full name: %%F
echo name without suffix: %%~nF
echo %%~nF|findstr /E /I "important" >nul 2>&1 &&echo File is Important || echo file is not important
)
如果文件名中只有一个连字符,则以下代码有效。它使用嵌套FOR命令以连字符分隔基本文件名
@echo off
for %%F in (*.doc ) do (
echo full name: %%F
echo name without suffix: %%~nF
for /F "tokens=2 delims=-" %%G IN ("%%~nF") DO (
IF /I "%%G"=="important" (echo File is important) else Echo File is not important
)
)
第二组代码使用FINDSTR
命令检查基本文件名是否以要查找的字符串结尾。然后使用条件执行来确定执行哪个echo命令。如果上一个命令成功,则使用双符号AND执行。如果上一个命令未成功,则使用双管道执行
for %%F in (*.doc ) do (
set "flag="
echo full name: %%F
echo name without suffix: %%~nF
echo %%~nF|findstr /E /I "important" >nul 2>&1 &&echo File is Important || echo file is not important
)
我认为
forfiles
功能正是您所需要的。为什么不在(“*-important*.doc”)中为%%f使用是否…
只查找和处理文件名中包含字符串-important
的文档文件?@Mofi,因为将来会有多个标志,我希望创建通用脚本来检查文件的这一部分name@wdfeww,但您可以轻松地将它们添加到FOR
命令中对于(*-important.doc*-classified.doc*-sensitive.doc)中的%%f,请执行……
我认为FOR files
功能正是您所需要的。您为什么不在(“*-important*.doc”)中对%%f使用是否…
只查找和处理文件名中包含字符串-important
的文档文件?@Mofi,因为将来会有多个标志,我希望创建通用脚本来检查文件的这一部分name@wdfeww,但您可以轻松地将它们添加到FOR
命令中<代码>对于(*-important.doc*-classified.doc*-sensitive.doc)中的%%f,请执行……