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

时间:2015-08-04 13:22:34

标签: windows batch-file variable-expansion

我刚刚升级了Windows 10.但我编写的批处理文件并不完全正常。相同的编码与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.

1 个答案:

答案 0 :(得分:0)

当DIR列出时,Windows 10和Windows 7会提供不同的列。更改令牌可以解决问题。