2015-08-04 4 views
1

Я только что обновил Windows 10. Но командный файл, который я написал, не работает полностью. То же кодирование работало с Windows 7. Это часть кода.Странная проблема совместимости с Windows 10

: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 дает правильный результат. Но когда приходит список.txt, все выходы Echo выключены. Я никогда не видел ничего подобного. Работает с 7, но не работает с 10.

+0

В конце, видимо, есть ненужное закрытие ')', что произойдет, если вы его удалите? – wOxxOm

+0

Я только что заметил это, но ничего не происходит, когда я удаляю его. –

+0

Очевидно, что 'TRIMMEDNAME' пуст, поэтому вы должны проверить, какой контент находится в' FULLNAME' и 'ENDTEXT'. Затем вы должны изменить синтаксис SET на 'set 'FULLNAME = %% f" 'и' set' ENDTEXT =! FULLNAME: * 0p =! "', Чтобы избежать проблем с конечными пробелами. Вероятно, выход 'DIR/Q' изменился – jeb

ответ

0

Windows 10 и Windows 7 предоставляют разные столбцы при записи DIR. Изменение жетонов решит проблему.