Во-первых, полная идея хороша, но бесполезна, так как это невозможно сделать с помощью одного пакета.
По крайней мере, вы не можете прочитать символ NUL (0x00) с помощью пакета.
Почему вашкод не может работать, есть много причин, вы читаете из test.dll, пытаясь написать его одновременно, как вы ожидаете, что он может работать?
Ваш код не обрабатывает никаких специальных символов, это возможно спакет, но это сложно.
Линия set f1=%f1:*=MAL%
не может работать, так как вы не можете заменить одну звезду таким образом.
Также set f1=%f1:==SC}%
и set f1=%f1:~=CV7%
не удастся по той же причине.
set f1=%f1:%=VQE%
изменяется f1
всегда на =VQE
независимо от содержимого f1
.
Даже если вы удалите эти строки, ваш перевод переводит каждый символ несколько раз, а ввод a
приводит к выводу
ZIPhubKAAGTJN9ZIPvuighabuthiwhnzupzupwhnzupzupPIPJN9cmvcmvxfivuighbuthiwhnzupzupvuighvuighabuthiwhnzupzupwhnzupzupPIPJN9*J~L=*UYG
Чтобы найти такие проблемывсегда полезно удалить exit
и включить echo on
.