Это невозможно. На самом деле есть запрос функции для этой функции:
Ошибка 743 - Разрешить шаблоны в ответе на приглашение по умолчанию в пользовательских командах .
Хотя даже это означало поддержку только статических (не файловых) шаблонов, таких как !/
, но не шаблонов файлов, таких как !
.
Если это поможет, в расширениях WinSCP можно использовать не файловые шаблоны, такие как !/
(но не шаблоны файлов, такие как !
) по умолчанию prompt / option ответ.
Файл расширения может выглядеть так:
@name Unzip...
@side Remote
@command unzip "!" -d "%ExtractionPath%"
@option ExtractionPath -run textbox "Extraction path:" "!/"
Просто сохраните приведенный выше скрипт в текстовый файл и установите его в WinSCP .
Еще одна вещь, которую вы можете сделать, это добавить флажок, который заставит WinSCP добавить имя архива (без расширения) к пути, с некоторым умным использованием конструкций оболочки (bash). Таким образом, вы можете снять флажок и добавить пользовательскую подпапку в целевой путь вручную, если вы не хотите использовать имя архива для имени подпапки.
@name Unzip...
@side Remote
@command unzip "!" -d "%ExtractionPath%`[[ '%AddName%' = '1' ]] && AN=! && echo ${AN%.*}`"
@option ExtractionPath -run textbox "Extraction path:" "!/"
@option AddName -run checkbox "Add file name to the extraction path" "1" "1"
Еще одна альтернатива - использовать свой собственный заполнитель для имени архива (например, ARCHIVENAME
), которое будет заменено реальным именем (без расширения) при выполнении команды. Затем, если вы не хотите использовать имя архива для имени подпапки, вы заменяете ARCHIVENAME
на пользовательское имя.
@name Unzip...
@side Remote
@command unzip "!" -d "`EP=%ExtractionPath%;AN=!;AN=${AN%.*};echo ${EP/ARCHIVENAME/$AN}`"
@option ExtractionPath -run textbox "Extraction path:" "!/ARCHIVENAME"