Получение имени файла без расширения в пакете 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
- Имя файла
Ответы
Ответ 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"