Создание пользовательского псевдонима для средств gnuwin32 в Windows Powershell

у меня установлен gnuwin32 и добавлен к моей среде, поэтому я запускаю linux / unix " ls " при вводе ls в командной строке. По-видимому, это не проблема для Powershell, но я не могу создать пользовательский псевдоним с одинаковым именем (ls) или другим именем (lsa/ll/ld), и я получаю следующую ошибку:

The script failed due to call depth overflow.
+ CategoryInfo          : InvalidOperation: (0:Int32) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : CallDepthOverflow

Итак, вот мой скрипт:

Set-Alias -name ls -value ListDirectory -Option AllScope

Function ListDirectory { 
    $Command = "ls -I ntuser.* -I NTUSER.*";
    Invoke-Expression $Command
}

какие идеи? Насчет игнорируемых файлов, они мне нужны. Просто чтобы убедиться, эта команда работает просто отлично в старой доброй командной строке, у меня только проблемы в Powershell: (

2
задан prubini87
06.12.2022 15:19 Количество просмотров материала 3096
Распечатать страницу

1 ответ

@LotPings вы были правы! Добавление." exe" на ls сделал "трюк". Я добавил цикл, чтобы захватить возможные аргументы, которые я могу передать ему, и поместил аргументы в переменную $Command. Я не уверен, что сделал это наилучшим образом, но это работает! Хехе. Еще раз спасибо!

# gnuwin32 "ls"
Set-Alias -name ls -value ListDirectory -Option AllScope

Function ListDirectory {
    $allArgs = "";
    For ($i=0; $i -lt $args.Length; $i++) {
        $allArgs += $args[$i] + " ";
    }

    $Command = "ls.exe $allArgs -I ntuser\.* -I NTUSER\.*";
}
0
отвечен prubini87 2022-12-07 23:07

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх