Подтвердить что ты не робот

Получение имени файла без расширения в пакете Windows Script

Я пытаюсь создать команду контекстного меню правой кнопкой мыши для сжатия файлов JavaScript с помощью компрессора YUI. Моя конечная цель - попытаться запустить это в контекстном меню:

java.exe -jar yuicompressor-2.4.2.jar -o <filename>.min.js <filename>.js

Я знаю, что могу использовать переменную %1 для ссылки на открываемое имя файла. Я не могу понять, как получить эту команду в синтаксисе пакетного файла и не удалось найти ответы в Интернете.

Update:
Ответ Джереми (+ комментарии) работал. Для тех, кто наткнулся на это, вот что мне нужно сделать:

В действии, которое я создал для файла JavaScript, я использовал это как команду:

minify.bat "%1"

Что вызывает мой пакет script, который выглядит следующим образом:

java.exe -jar yuicompressor-2.4.2.jar -o "%~dpn1.min.js" %1

Для пакета script имейте в виду, что приведенный выше код предполагает, что каталоги для java.exe и yuicompressor добавляются к вашим переменным PATH. Если вы не добавите их на свой путь, вам придется использовать полный путь для файлов.

Последовательность %~dpn используется для получения:

  • %~d - Привод
  • %~p - Путь
  • %~n - Имя файла
4b9b3361

Ответ 1

Измените действие для вызова командного файла:

RunCompressor.bat "%1"

Используйте %~n1, чтобы получить имя файла без расширения в RunCompressor.bat:

start javaw.exe -jar yuicompressor-2.4.2.jar -o "%~n1.min.js" "%1"

Полезная статья

start javaw.exe закрывает окно команды при запуске командного файла.

Ответ 2

echo path of this file name is: %~dp0
echo file name of this file without extension is:%~n0
echo file extention of this file is:%~x0
echo The file name of this file is: %~nx0

Ответ 3

Напишите свой собственный класс, который определяет имя выходного файла для отправки в компрессор YUI.

java.exe -cp yuicompressor-2.4.2.jar MyClass "%1"