Aym*_*udi 107 powershell
我想创建一个alias的cmdlet不到期后,我关闭的PowerShell当前会话,让我们说我有这个别名:
C:\Users\Aymen> New-Alias Goto Set-Location
Run Code Online (Sandbox Code Playgroud)
这完美地创建了Goto别名,但我想在关闭当前会话后使用它,我该如何实现.
注意:
PowerShell帮助系统建议我可以导出我创建的别名,并在下次打开新会话时导入它们,实际上这并不是我真正想要的,因为有没有直接清晰的方法来保持别名后我通过不同的会话创建它
Nai*_*gel 86
更新 - 2017年1月
profile.ps1PowerShell启动时,可以在文件中存储要执行的任何powershell代码.根据哪个用户必须执行代码,存在至少6个不同的路径来存储代码.我们只能考虑其中的两个:"所有用户"和"仅用户"路径.
因此,要回答您的问题,您只需要创建一个profile.ps1包含您要执行的代码的文件,即
New-Alias Goto Set-Location
Run Code Online (Sandbox Code Playgroud)
并将其保存在正确的路径中:
"$Home\Documents" (C:\ Users\yourname\Documents):只有您的用户才能执行代码.$PsHome (C:\ Windows\System32\WindowsPowerShell\v1.0):每个用户都将执行代码.要应用更改,请关闭所有打开的powershell实例并重新启动它们.
提示
如果两个路径都包含profile.ps1文件,则首先执行所有用户,然后执行特定用户.
如果不需要将代码扩展到每个用户,请始终将代码放在用户特定的配置文件中.您不需要管理员权限即可将文件添加到用户空间(否则可以),并且不会污染其他用户的空间.
记得!$PsHomepowershell的32位和64位实例之间的路径不同,因此如果您想要始终执行配置文件代码,则必须考虑这两种环境.通常路径C:\Windows\System32\WindowsPowerShell\v1.0适用于64位环境和C:\Windows\SysWow64\WindowsPowerShell\v1.032 位环境.
Cha*_*ell 82
将这种东西直接添加到您的$env:WINDIRpowershell文件夹中并不是一个好主意.
建议的方法是将其添加到您的个人资料中:
cd $env:USERPROFILE\Documents
md WindowsPowerShell -ErrorAction SilentlyContinue
cd WindowsPowerShell
New-Item Microsoft.PowerShell_profile.ps1 -ItemType "file" -ErrorAction SilentlyContinue
powershell_ise.exe .\Microsoft.PowerShell_profile.ps1
Run Code Online (Sandbox Code Playgroud)
现在将您的别名添加到现在打开的Microsoft.PowerShell_profile.ps1文件中:
function Do-ActualThing {
# do actual thing
}
Set-Alias MyAlias Do-ActualThing
Run Code Online (Sandbox Code Playgroud)
然后保存它,并使用以下命令刷新当前会话:
. $profile
Run Code Online (Sandbox Code Playgroud)
Ben*_*arp 18
您可以借助简单的PowerShell脚本链接到任何文件或目录.
打开Windows PowerShell ISE.在脚本窗格中写道:
New-Alias ${shortcutName} ${fullFileLocation}
Run Code Online (Sandbox Code Playgroud)
然后转到命令行窗格.找到您的PowerShell用户配置文件地址echo $profile.将脚本保存在此地址中.
PowerShell的配置文件地址中的脚本将在每次打开PowerShell时运行.该快捷方式应适用于每个新的PowerShell窗口.
它需要我们脚本中的另一行.
function ${nameOfFunction} {set-location ${directory_location}}
New-Alias ${shortcut} ${nameOfFunction}
Run Code Online (Sandbox Code Playgroud)
其余的完全相同.
默认情况下,PowerShell脚本被阻止.要启用它们,请打开设置 - >更新和安全 - >对于开发人员.选择开发者模式(可能需要重启).
.
向下滚动到PowerShell部分,勾选"更改执行策略..."选项,然后应用.
wor*_*ise 13
我发现我可以运行这个命令:
notepad $PROFILE.CurrentUserAllHosts
Run Code Online (Sandbox Code Playgroud)
它会打开我的默认 powershell 配置文件(对于当前用户、所有主机)。我发现这里。
然后添加别名。例如,这是我的jnfor别名(我讨厌每次都jupyter notebook输入繁琐的内容):jupyter notebook
Set-Alias -Name jn -Value C:\Users\words\Anaconda3\Scripts\jupyter-notebook.exe
Run Code Online (Sandbox Code Playgroud)
只是添加到这个可能的位置列表......
这不适合我:
\Users\{ME}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
但是这样做了:
\Users\{ME}\OneDrive\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
如果您没有配置文件或者您想要设置一个配置文件,请运行以下命令,它将创建必要的文件夹/文件,甚至告诉您它的位置!
New-Item -path $profile -type file -force
简单。例如...
打开Windows PowerShell窗口并键入:
notepad $profile
Run Code Online (Sandbox Code Playgroud)
然后创建一个函数,例如:
function goSomewhereThenOpenGoogleThenDeleteSomething {
cd C:\Users\
Start-Process -FilePath "http://www.google.com"
rm fileName.txt
}
Run Code Online (Sandbox Code Playgroud)
然后在函数名称下键入:
Set-Alias google goSomewhereThenOpenGoogleThenDeleteSomething
Run Code Online (Sandbox Code Playgroud)
现在,您可以在Windows PowerShell中键入单词“ google”,并使其在您的函数中执行代码!
小智 5
要创建profile1.psl文件,请键入以下命令:
new-item $ PROFILE.CurrentUserAllHosts -ItemType file -Force
要访问该文件,请键入以下命令:
ise $ PROFILE.CurrentUserAllHosts
请注意,如果您之前没有这样做,您将看到由于执行策略而无法运行脚本,您需要将其更改为Unrestricted from Restricted(默认值).
为此,请关闭脚本,然后键入以下命令:
Set-ExecutionPolicy -Scope CurrentUser
然后:
下RemoteSigned
然后这个命令再次:
ise $ PROFILE.CurrentUserAllHosts
然后最后在脚本中输入别名,保存它们,并且每次运行powershell时它们都应该运行,即使在重新启动计算机之后也是如此.
| 归档时间: |
|
| 查看次数: |
71833 次 |
| 最近记录: |