Я только что обновил 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.
В конце, видимо, есть ненужное закрытие ')', что произойдет, если вы его удалите? – wOxxOm
Я только что заметил это, но ничего не происходит, когда я удаляю его. –
Очевидно, что 'TRIMMEDNAME' пуст, поэтому вы должны проверить, какой контент находится в' FULLNAME' и 'ENDTEXT'. Затем вы должны изменить синтаксис SET на 'set 'FULLNAME = %% f" 'и' set' ENDTEXT =! FULLNAME: * 0p =! "', Чтобы избежать проблем с конечными пробелами. Вероятно, выход 'DIR/Q' изменился – jeb