|
|
楼主 |
发表于 2025-10-8 11:53:35
|
显示全部楼层
另外发现一个重要的问题,在for循环中,必须加入“delims="或者"tokens=*",否则程序也运行不对。
在此基础上,对循环进一步简化,更符合我们运行去重的理念。大家看一下下面的程序。
setlocal enabledelayedexpansion
echo. > chk.txt
for /f "delims=" %%a in (1.txt) do (
for /f "delims=" %%b in (chk.txt) do (
set "line=%%b"
set "line=!line:~0,-1!" :: 去除行尾换行符
if "%%a"=="!line!" (
goto :skip
)
)
echo %%a >> chk.txt
:skip
echo >nul
)
chk.txt
---------------------------------------------------------
上述程序不做任何判断,如果发现重复,直接跳出循环;没有重复的才echo。但是有一点需要主要注意:
:skip不能写在最后一行(即:)之前)。
必须加入一行,所以加入echo>nul,这个没有任何含义的语句,以保持运行。
在这个简单的练习中,发现很多注意事项,也希望高手能给与指点,看看我的理解(都是来自实践,没有理论支撑)是否正确。多谢指点 |
|