1) Уберите ECHO OFF и посмотрите, что происходит после подстановки аргументов.
2) Что такое %2, при каком его значении, например, происходит ошибка?
3) Знаете, что такое %~2? (Читаем call /?).
Возможно, стоит заменить "%2" на "%~2"…
Использовать переменную с именем PATH — не очень хорошо: в данном случае не создаётся нового процесса, но если бы вместо explorer было другое приложение, последствия могли бы быть неожиданными.
Совет: ничего не перекодируя, попробуй в полученной строке заменить свой протокол на file и в таком виде передать проводнику.
Во-первых, текст из консоли легко копируется, — не используй изображения вместо текста.
Во-вторых, программы на VBScript выполняются без компиляции.
В третьих, это компилятор Visual Basic, а не VBScript и, как видно, он требует объявления переменных.
— только сейчас увидел, что «скрипта», а не «команды». Скрипт (например, командный файл), рекурсивно вызывающий 7-Zip, конечно, можно сделать; как обойтись единственным вызовом архиватора — не представляю.