Batch file 如何在windows批处理脚本中比较文件格式

Batch file 如何在windows批处理脚本中比较文件格式,batch-file,batch-processing,batch-updates,Batch File,Batch Processing,Batch Updates,我有一个包含.xml、.css、.js、.jsp、.java等文件名的列表。我想要一个代码,它只允许您在该文件具有.js或.jsp或.java扩展名时执行函数。我不知道如何检查if语句中的多重条件。这就是为什么添加as或..请帮助我..谢谢 FOR /F "delims=#" %%A in (demo.txt) do ( IF [/I] %%~xA==".js" OR %%~xA==".css" OR %%~xA==".java" ( echo correct

我有一个包含.xml、.css、.js、.jsp、.java等文件名的列表。我想要一个代码,它只允许您在该文件具有.js或.jsp或.java扩展名时执行函数。我不知道如何检查if语句中的多重条件。这就是为什么添加as或..请帮助我..谢谢

   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

    ) 

)

创建一个包含所有有效扩展名列表的变量。请确保在末尾添加一个额外的点,以便所有扩展都由点包围。然后,对于每个值,尝试在列表上搜索并替换,将找到的扩展名(加点)替换为零。如果结果与原始列表不同,则扩展名有效

@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
  )
)

有关实现或逻辑的其他方法,请参阅。

创建一个包含所有有效扩展名列表的变量。请确保在末尾添加一个额外的点,以便所有扩展都由点包围。然后,对于每个值,尝试在列表上搜索并替换,将找到的扩展名(加点)替换为零。如果结果与原始列表不同,则扩展名有效

@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
  )
)
    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

有关实现或逻辑的其他方法,请参阅。

创建一个包含所有有效扩展名列表的变量。请确保在末尾添加一个额外的点,以便所有扩展都由点包围。然后,对于每个值,尝试在列表上搜索并替换,将找到的扩展名(加点)替换为零。如果结果与原始列表不同,则扩展名有效

@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
  )
)
    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

有关实现或逻辑的其他方法,请参阅。

创建一个包含所有有效扩展名列表的变量。请确保在末尾添加一个额外的点,以便所有扩展都由点包围。然后,对于每个值,尝试在列表上搜索并替换,将找到的扩展名(加点)替换为零。如果结果与原始列表不同,则扩展名有效

@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
  )
)
    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

有关实现或逻辑的其他方法,请参阅。

If demo.txt中的文件列表,如OP所示

    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
for /F "tokens=*" %%f in ('type demo.txt ^| findstr /i /e ".js .java .jsp"') do (
    rem here what needs to be done
    echo %%f
)

如果文件位于目录中,则将
键入demo.txt
替换为
目录/b..
调整要处理的目录。

如果文件列表位于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
)

如果文件位于目录中,则将
键入demo.txt
替换为
目录/b..
调整要处理的目录。

如果文件列表位于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
)

如果文件位于目录中,则将
键入demo.txt
替换为
目录/b..
调整要处理的目录。

如果文件列表位于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
)
如果目录中有文件,请将
键入demo.txt
替换为
dir/b….
调整目录以进行处理。

尝试以下操作:

@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
)
试试这个:

@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
)
试试这个:

@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
)
试试这个:

@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
)


比我的尝试更简单。+1非常感谢你…你的代码运行得非常完美。。非常感谢:)@user2918831-如果答案完全回答了你的问题,不要忘记接受你认为最有用的答案。只需单击anser左上角的复选标记。这一行动让其他人知道问题已经得到了回答,给你2个声誉点,给回答者15个代表点。每个问题只能接受一个答案。一旦你达到15个代表点,你就可以对任何你认为有用的答案进行投票,包括对其他人问题的答案。比我的尝试更简单。+1非常感谢你……你的代码运行得非常完美。。非常感谢:)@user2918831-如果你认为最有用的答案完全回答了你的问题,不要忘记接受它。只需单击anser左上角的复选标记。这一行动让其他人知道问题已经得到了回答,给你2个声誉点,给回答者15个代表点。每个问题只能接受一个答案。一旦你达到15个代表点,你就可以对任何你认为有用的答案进行投票,包括对其他人问题的答案。比我的尝试更简单。+1非常感谢你……你的代码运行得非常完美。。非常感谢:)@user2918831-如果你认为最有用的答案完全回答了你的问题,不要忘记接受它。只需单击anser左上角的复选标记。这一行动让其他人知道问题已经得到了回答,给你2个声誉点,给回答者15个代表点。每个问题只能接受一个答案。一旦你达到15个代表点,你就可以对任何你认为有用的答案进行投票,包括对其他人问题的答案。比我的尝试更简单。+1非常感谢你……你的代码运行得非常完美。。非常感谢:)@user2918831-如果你认为最有用的答案完全回答了你的问题,不要忘记接受它。只需单击anser左上角的复选标记。这一行动让其他人知道问题已经得到了回答,给你2个声誉点,给回答者15个代表点。每个问题只能接受一个答案。一旦你达到15个代表点,你就可以对任何你认为有用的答案进行投票,包括对其他人问题的答案。你需要避开管道,
findstr/i/e/c:“jsp”/c:“java”…
No,/c:是不必要的。除非使用/c,否则文档状态空格将分隔多个子字符串。如果由于回显在末尾输出一个引号而失败。findstr/e说巧合应该在最后。所以没有对手,对不起。现在我看到您已经编辑了测试。新版本返回some.js您需要转义管道,
findstr/i/e/c:“jsp”/c:“java”…
No,/c:不是必需的。除非使用/c,否则文档状态空格将分隔多个子字符串。如果由于回显在末尾输出一个引号而失败。findstr/e说巧合应该在最后。所以没有对手,对不起。现在我看到您已经编辑了测试。新版本返回some.js您需要转义管道,
findstr/i/e/c:“jsp”/c:“java”…
No,/c:不是必需的。