批处理文件用于循环包含排除项的文件扩展名列表

Luk*_*kie 7 for-loop dos batch-file

假设我在目录中有以下文件

  • /file.js
  • /file2.min.js
  • /file1.js

如何编写一个批处理循环,以便拾取所有".js"文件,但".min.js"不是,并且.js文件名的输出可以更改为追加.min.js

例如:

for %%A IN (*.js) DO @echo %%A "->" %%~nA ".min.js"
Run Code Online (Sandbox Code Playgroud)

理想情况下会产生以下内容,并注意file2.min.js不会显示在左侧.

  • file.js - > file.min.js
  • file1.js - > file1.min.js

谢谢你的帮助.

Joe*_*oey 10

看看它是否已经包含.min.js:

setlocal enabledelayedexpansion
for %%f in (*.js) do (
  set "N=%%f"
  if "!N:.min.js=!"=="!N!" echo %%f -^> %%~nf.min.js
)
Run Code Online (Sandbox Code Playgroud)