Синтаксис псевдонима PowerShell для запуска встроенной функции cmd.exe? - PullRequest
2 голосов
/ 21 января 2011

Поскольку я только недавно переключился на PowerShell с cmd.exe, я часто нахожу удобным делать небольшие вещи привычным способом, вызывая cmd для их выполнения. Например, для создания «пустого» списка файлов это прекрасно работает:

PS> cmd /c dir /b
dir1
dir2
file1.txt

Я хотел бы сделать псевдоним для этого, но я не могу понять правильный синтаксис. Пока я пробовал:

PS> Set-Alias dirb cmd /c dir /b        # error (alias not created)
PS> Set-Alias dirb "cmd /c dir /b"      # fail (alias doesn't work)
PS> Set-Alias dirb "cmd `"/c dir /b`""  # fail (alias doesn't work)

Есть предложения? Я ищу общее решение для вызова встроенных cmd.exe команд (таких как dir). Я также хотел бы знать, как правильно выводить голые данные с помощью командлетов PowerShell, но сейчас это второстепенная проблема. Этот вопрос о правильном синтаксисе для вызова cmd.exe из псевдонима.

Ответы [ 4 ]

4 голосов
/ 21 января 2011

Псевдонимы не предназначены для такого рода задач. Псевдоним - это просто другое имя команды. Вместо этого используйте функцию.

function dirb { cmd /c dir /b }
3 голосов
/ 21 января 2011

Я верю, что вы хотите, это функция, а не псевдоним. Например:

  function dirb {
    cmd /c dir $args[0] /b
     }

В командной строке PS запустите notepad $ profile, вставьте его в свой профиль, и он автоматически загрузится при открытии консоли PS, и вы сможете сделать это:

dirb c: \ somedir

См. Get-help about_functions для получения дополнительной информации о функциях.

0 голосов
/ 21 января 2011

С какой стати вы используете PowerShell, чтобы открыть командную строку? Кажется, это побеждает цель.

Псевдоним, который я предпочитаю перечислять файлы, это просто ls

0 голосов
/ 21 января 2011

Псевдонимы в powershell, к сожалению, не принимают параметров - для этого нужно определить функцию.Для получения дополнительной информации,

get-help aliases
...