如何在Powershell别名中运行连续命令?

时间:2019-05-25 09:29:20

标签: powershell

我想在Profile.ps1中运行一系列命令来创建别名。我已经用分号分隔了每个命令:

New-Alias -Name venv -Value 'echo "venv" >> .gitignore ; python3 -m venv --copies venv ; venv\scripts\activate.ps1 && pip install -U pip pylint black pep8 pydocstyle ; pip list ; python --version'  # Create virtual environment "venv"

但是,此错误与以下内容有关:

venv : The module 'echo "venv" >> .gitignore ; python3 -m venv --copies venv ; venv' could not be loaded. For more information, run 'Import-Module echo "venv" >> .gitignore ; python3 -m venv --copies venv ; venv'.
At line:1 char:1
+ venv                                                                                                                                            
+ ~~~~
+ CategoryInfo          : ObjectNotFound: (echo "venv" >> .git\u2026 ; python --version:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CouldNotAutoLoadModule

如果我将命令简化为New-Alias -Name venv -Value 'echo "venv" >> .gitignore',我仍然会遇到(其他)错误:

venv : The term 'echo "venv" >> .gitignore' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ venv
+ ~~~~
+ CategoryInfo          : ObjectNotFound: (echo "venv" >> .gitignore:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

我在这里做什么错了?

1 个答案:

答案 0 :(得分:1)

如果有多个命令,则应使用函数:

function venv { 
    echo "venv" >> .gitignore; 
    python3 -m 
    ...etc...
}