0

.xml、.css、.js、.jsp、.java などを含むファイル名のリストがあります。そのファイルの拡張子が .js、.jsp、または .java の場合にのみ関数を実行できるようにするコードが必要です。 if ステートメントで複数の条件をチェックする方法がわかりません。そのため、ORとして追加します..親切に私を助けてください..ありがとう

   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

    ) 

)
4

4 に答える 4

1

OPで示されているようなdemo.txtのファイルリストの場合

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 ....

于 2013-10-25T14:26:04.267 に答える
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 ロジックを実装するその他の方法については、Windows バッチ ファイルの IF… OR IF…を参照してください。

于 2013-10-25T14:16:47.243 に答える
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
于 2013-10-25T14:18:09.850 に答える
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
)
于 2013-10-25T18:58:56.877 に答える