我要编写什么脚本以及在哪里定义:
alias for ll="ls -l"
alias/function cd = "original cd; ll"
所以,我的问题是如何将Windows 7上的Power Shell的rc文件放在哪里以及如何将ll
别名ls -l
和cd
添加到cd; ll
?
答案 0 :(得分:12)
在键入$profile
时,在电源外壳指向的位置创建一个文件,如果不存在则按Enter键。 (有关详细信息,请查看here。)
此外,我在系统powershell.exe
旁边找到了很多很好的示例,其中有一个示例文件夹,其中有一个名为profile.ps1
的文件,其中包含以下代码:
set-alias cat get-content
set-alias cd set-location
set-alias clear clear-host
set-alias cp copy-item
set-alias h get-history
set-alias history get-history
set-alias kill stop-process
set-alias lp out-printer
set-alias ls get-childitem
set-alias mount new-mshdrive
set-alias mv move-item
set-alias popd pop-location
set-alias ps get-process
set-alias pushd push-location
set-alias pwd get-location
set-alias r invoke-history
set-alias rm remove-item
set-alias rmdir remove-item
set-alias echo write-output
set-alias cls clear-host
set-alias chdir set-location
set-alias copy copy-item
set-alias del remove-item
set-alias dir get-childitem
set-alias erase remove-item
set-alias move move-item
set-alias rd remove-item
set-alias ren rename-item
set-alias set set-variable
set-alias type get-content
function help
{
get-help $args[0] | out-host -paging
}
function man
{
get-help $args[0] | out-host -paging
}
function mkdir
{
new-item -type directory -path $args
}
function md
{
new-item -type directory -path $args
}
function prompt
{
"PS " + $(get-location) + "> "
}
& {
for ($i = 0; $i -lt 26; $i++)
{
$funcname = ([System.Char]($i+65)) + ':'
$str = "function global:$funcname { set-location $funcname } "
invoke-expression $str
}
}
还要考虑以下问题。执行$profile
中的文件时可能会出现以下错误:
无法加载“Microsoft.PowerShell_profile.ps”,因为在此系统上禁用了脚本的执行。有关详细信息,请参阅“get-help about_signing”。
<强>解决方案:强> 检查当前的执行政策
PS C:\Windows\System32> Get-ExecutionPolicy
Restricted
PS C:\Windows\System32>
要更改执行策略以允许PowerShell从本地文件执行脚本,请运行以下命令:
PS C:\Windows\System32> Set-Executionpolicy RemoteSigned -Scope CurrentUser