В Windows PowerShell есть способ "оценить" переменную, чтобы ее значение было вставлено в командную строку? Сценарий использования, который я хотел бы выполнить, выглядит следующим образом:

допустим, у меня есть переменная $path которая содержит «C:/Users/Me/Some/Long/Path». Я хотел бы написать cd $path в командной строке, а затем заменить $path его значением, чтобы в моей командной строке был cd C:/Users/Me/Some/Long/Path и я мог вручную отредактировать длинный путь и в конечном итоге нажмите Enter, чтобы изменить каталог. Это или подобное поведение доступно? Будет ли это возможно только с переменной, без cd в начале?

1 ответ1

0

Есть способ - он немного хакерский и не всегда работает. Возьмем ваш пример с CD, если вы наберете:

cd $path\<TAB>

PowerShell расширит $ path до его значения, но только при наличии подкаталогов. Если бы $ path был листовым каталогом, PowerShell вообще не заменил бы текст.

Теперь для раздражающей части - PowerShell сделает больше, чем просто расширит вашу переменную, он также будет включать первое возможное завершение. Если это не то, что вы хотели, вам придется удалить этот текст. Если вы знаете часть пути, который хотите, лучше добавить это, например:

cd $path\*part<TAB>

Заметьте, я включил ведущий шаблон - это прекрасно работает. Конечный подстановочный знак не требуется, PowerShell предполагает, что вы хотите использовать конечный подстановочный знак при нажатии.

Этот прием может работать и с другими командами, например, если вы хотите завершить файлы, а не только каталоги, попробуйте:

cat $path\<TAB>

Этот трюк будет лучше всего работать с путями, хотя он может работать в некоторых других ограниченных обстоятельствах.

Хотя это определенно не сработает без команды - и, честно говоря, неважно, как называется команда.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .