我有文件名列表,其中包含.xml,.css,.js,.jsp,.java等。我想要一个代码,只有当该文件具有.js或.jsp或时,才能执行您的函数。 java扩展。我不知道如何检查if语句中的多重条件。这就是为什么要添加OR ... kindly帮助我...谢谢你
FOR /F "delims=#" %%A in (demo.txt) do (
IF [/I] %%~xA==".js" OR %%~xA==".css" OR %%~xA==".java"
(
echo correct format
)
ELSE
(
ECHO incorrect format
)
)
答案 0 :(得分:1)
创建一个包含所有有效扩展名列表的变量。请务必在末尾添加一个额外的点,以便所有扩展都用点括起来。然后对于每个值,尝试搜索并替换列表,用任何内容替换找到的扩展名(加点)。如果结果与原始列表不同,则扩展名有效。
@echo off
setlocal enableDelayedExpansion
set "formats=.css.js.jsp.java."
for /f "delims=#" %%A in (demo.txt) do (
if "!formats:%%~xA.=!" neq "!formats!" (
echo %%~xA is correct format
) else (
echo %%~xA is incorrect format
)
)
有关实现OR逻辑的其他方法,请参阅IF… OR IF… in a windows batch file。
答案 1 :(得分:1)
setlocal enableDelayedExpansion
FOR /F "delims=#" %%A in (demo.txt) do (
set "format=incorect"
for %%E in (.js;.java;.jsp;.css) do (
if "%%~xA" == "%%~E" (
set "format=correct"
)
)
if "!format!" equ "correct" (
echo correct format
) else (
echo incorrect format
)
)
endlocal
答案 2 :(得分:1)
如果文件列表在demo.txt中,如OP
所示for /F "tokens=*" %%f in ('type demo.txt ^| findstr /i /e ".js .java .jsp"') do (
rem here what needs to be done
echo %%f
)
如果目录中有文件,请将type demo.txt
替换为dir /b ....
,调整要处理的目录。
答案 3 :(得分:0)
试试这个:
@ECHO OFF &SETLOCAL
for /f "delims=#" %%a in (demo.txt) do (
set "flag="
if /i "%%~xa"==".js" set "flag=true"
if /i "%%~xa"==".css" set "flag=true"
if /i "%%~xa"==".java" set "flag=true"
if defined flag (echo %%~xa is valid) else echo %%~xa is not valid
)