如何在脚本中运行PowerShell内置脚本?
您如何使用内置脚本,例如
Get-Location
pwd
ls
dir
split-path
::etc...
这些由计算机运行,并自动检查脚本的路径。
同样,我可以通过将脚本名称放在脚本块中来运行自定义脚本
::sid.ps1 is a PS script I made to find the SID of any user
::it takes one argument, that argument would be the username
echo $(sid.ps1 jowers)
(returns something like)> S-X-X-XXXXXXXX-XXXXXXXXXX-XXX-XXXX
$(sid.ps1 jowers).Replace("S","X")
(returns same as above but with X instead of S)
转到powershell命令行并键入
> $profile
这会将路径返回到每次您打开应用程序时PowerShell命令行将执行的文件的路径。
看起来像这样
C:\Users\jowers\OneDrive\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
转到“文档”,查看是否已经有WindowsPowerShell目录。我没有,所以
> cd \Users\jowers\Documents
> mkdir WindowsPowerShell
> cd WindowsPowerShell
> type file > Microsoft.PowerShellISE_profile.ps1
现在,我们已经创建了脚本,该脚本将在每次打开PowerShell应用程序时启动。
这样做的原因是,我们可以添加自己的文件夹来保存所有自定义脚本。让我们创建该文件夹,在Mac / Linux存放脚本的目录之后,我将其命名为“ Bin”。
> mkdir \Users\jowers\Bin
现在,我们希望$env:path
每次打开应用程序时将该目录添加到我们的变量中,因此返回WindowsPowerShell
目录并
> start Microsoft.PowerShellISE_profile.ps1
然后添加
$env:path += ";\Users\jowers\Bin"
现在,只要将脚本保存在该“ Bin”目录中,外壳程序就会自动找到您的命令。
重新启动powershell,它应该是最早执行的脚本之一。
重新加载后在命令行上运行此命令,以在path变量中查看新目录:
> $env:Path
现在,我们可以从命令行或从另一个脚本中调用脚本,就像这样:
$(customScript.ps1 arg1 arg2 ...)
如您所见,我们必须使用.ps1
扩展名来调用它们,直到为它们创建别名为止。如果我们想得到幻想。