|
|
楼主 |
发表于 2024-10-2 22:29:15
|
显示全部楼层
本帖最后由 tiandyoin 于 2024-10-3 01:32 编辑
回复 4# tiandyoin
- rem "搜索无效快捷方式.bat"
- :main
- @echo off
- set lnkId=0
- for /f "delims=" %%a in ('dir /A-D /S/B "%~dp1.\%~nx1\*.lnk"') do (
- call :get_lnk_target %%~a returnVal
- call :add1 returnVal lnkId
- )
- @goto :EOF
- :add1
- @if "%~1" == "" goto :EOF
- @if "%~2" == "" goto :EOF
- setlocal enabledelayedexpansion
- set "returnVal=!%~1!"
- set "lnkId=!%~2!"
- if "!returnVal!" neq "" if not exist "!returnVal!" set /a lnkId+=1
- endlocal & set "%~2=%lnkId%"
- @goto :EOF
复制代码 自增量不能放在复合语句里,哪怕外层套一对括号 (), 也算处在复合语句里。
在复合语句里 %lnkId% 就会被预处理为常量
setlocal 不是复合语句, (), for , if 等是复合语句
只能另起函数求自增量了 |
|