奇怪Windows 10 批处理兼容性问题

Weird Windows 10 batch compatability issue

我刚刚升级了Windows10。但是我写的批处理文件不能完全工作。相同的编码与 Windows 7 一起使用。这就是这段代码。

:BASLA
SETLOCAL ENABLEDELAYEDEXPANSION

set "s=DIR D:\Diziler /S /Q ^|FIND /i "Administrators" ^|findstr /m /i "HDTV" ^|findstr /m /i "\.mkv$""
for /f "Tokens=5,6*" %%f in ('%s%') do (
    set FULLNAME=%%f
    set ENDTEXT=!FULLNAME:*0p=!
    call set TRIMMEDNAME=%%FULLNAME:!ENDTEXT!=%%

for /r D:\Diziler\ %%g in (*) do echo %%~nxg >> %tmp%\altyazi.txt 

>nul findstr /c:"!FULLNAME:~0,-4!.srt" %tmp%\altyazi.txt  && (
>>%tmp%\list.txt echo !TRIMMEDNAME!*
) || (
>>%tmp%\list.txt echo !TRIMMEDNAME!
)
)
)

第一部分照常进行。 altyazi.txt 给出正确的输出。但是当它出现时 list.txt 所有输出都是 Echo 关闭。我从未见过这样的事情。适用于 7,但不适用于 10。

Windows 10 和 Windows 7 在 DIR 列表时给出不同的列。更改令牌将解决问题。