[1.1.63] - 2026-11-04
Changed
- The install and uninstall script lint fails on every severity. A finding that should remain is suppressed on that line with
REM LINT:IGNORE, or for both scripts withdisabled_rulesinscripts/blinter.ini.where blinterignores W009 because that command is how the installer sees which copy PATH will run - The MegaLinter install pin is 1.1.63
Fixed
- W007 warns on
copy,move,del,erase,ren, andrenameof a path under\Windows\,\System32\, or\Program Files, including those directories written as%WINDIR%,%SYSTEMROOT%, or%ProgramFiles%. A user-profile.exeor.dll, including one the script has already stopped, is no longer a locked-file warning - W067 still warns when
SETreplacesPATHor assigns another system variable such asUSERNAME.SET "PATH=%PATH%;directory"keeps the existing search path.SET "PATH=!PATH!;directory"does too, while delayed expansion is enabled
A%PATH%or!PATH!in a later command on the same line does not hide a replacement, and a laterSETthat does replacePATHstill warns
SET /PandSET /Astill warn when the prompt or expression mentions%PATH%.ECHO SET USERNAME=demois not an assignment. AnIF EXISToperand such asecho.txtdoes not hide theSETafter it.SET "NOTE=Please set PATH=C:\Tools"does not assignPATH
SET PATH="%PATH%";directorystill warns, because those quotes are part of the value.FOR %%i in (1) do SET PATH=C:\only-thisstill warns.%PATH%suffixstill warns because it changes the last search directory - P001 no longer pairs an
IF EXISTwith theIF EXISTon the other side ofELSE, including a check in theELSEbody and a check on the line afterELSE (. A closedELSEblock does not hide a later check of the same file
A longer path, a different quoted path that shares a first word, orELSE IF EXISTprinted byECHO, is not treated as the same file - P016 warns when an executed
SETinside aFORloop reads the variable it assigns (%NAME%,!NAME!, or a substitution of that name) or repeats oneFORmetavariable.SET VALUE=%%a,SET VALUE=%OTHER%,ECHO SET result=!result!andREM SET result=!result!are not concatenation
AnIF EXISToperand such asecho.txtdoes not hide a laterSET.SET result="!result!"still warns - P017 compares the full
IF EXISToperand with otherIF EXISTlines.%DIR%is not the same check as%DIR%.zipor%DIR%\child - P022 warns for an unescaped
>nulin aFORbody, includingfor %%i in (1) do dir >nul. A caret-escaped redirect or one inside theINcommand, such asin ('cmd /c echo 5 2^>nul'), runs once and is not reported