2009-09-16 2 views

ответ

4

Это должно работать

эхо% ~ n1

3

Если %1 будет содержать только имя файла (без пути):

echo %~n1 

Если он может содержать путь:

echo %~dpn1 

предоставит вам абсолютный путь.

Красивая, не так ли? :-P [EDIT:. Эти формы счастливо иметь дело с цитируемым аргументами, dequoting их в процессе, как Johannes отмечает в комментарии]

Для получения дополнительной информации: help for. Правильно, соответствующая помощь находится под командой FOR. Что указывает, что этот синтаксис работает только с переменными цикла FOR. Но на самом деле это нормально работает с %1, %2 и т. Д. Что может заставить вас думать, что он будет работать с любой переменной окружения, но это не так.

Я люблю CMD.EXE.

+1

Почему вы ожидаете, что это сломается по цитируемому аргументу? В помощи явно указано, что все окружающие кавычки будут удалены. – Joey

+0

Ты прав Йоханнес. В справке говорится, что '% ~ I' будет« увеличивать% I, удаляя любые окружающие кавычки », приводя меня к (неправильному) выводу, что использование других форм с использованием' ~ 'would * not * удаляет окружающие кавычки. –

+0

Спасибо j_random. Первый ответ решил мою проблему, но вы указали некоторые полезные моменты (например, помощь для?!) – Rook

Смежные вопросы