Làm thế nào để bạn chạy tập lệnh tích hợp PowerShell bên trong tập lệnh của bạn?
Làm thế nào để bạn sử dụng các tập lệnh tích hợp như
Get-Location
pwd
ls
dir
split-path
::etc...
Chúng được điều hành bởi máy tính của bạn, tự động kiểm tra đường dẫn của tập lệnh.
Tương tự, tôi có thể chạy các tập lệnh tùy chỉnh của mình bằng cách chỉ cần đặt tên của tập lệnh trong khối tập lệnh
::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)
Đi đến dòng lệnh powershell và gõ
> $profile
Điều này sẽ trả về đường dẫn đến một tệp mà dòng lệnh PowerShell của chúng tôi sẽ thực thi mỗi khi bạn mở ứng dụng.
Nó sẽ trông giống thế này
C:\Users\jowers\OneDrive\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
Chuyển đến Documents và xem bạn đã có thư mục WindowsPowerShell chưa. Tôi đã không làm vậy
> cd \Users\jowers\Documents
> mkdir WindowsPowerShell
> cd WindowsPowerShell
> type file > Microsoft.PowerShellISE_profile.ps1
Bây giờ chúng tôi đã tạo tập lệnh sẽ khởi chạy mỗi khi chúng tôi mở Ứng dụng PowerShell.
Lý do chúng tôi đã làm điều đó là để chúng tôi có thể thêm thư mục riêng chứa tất cả các tập lệnh tùy chỉnh của chúng tôi. Hãy tạo thư mục đó và tôi sẽ đặt tên là "Bin" sau các thư mục mà Mac / Linux giữ các tập lệnh của nó.
> mkdir \Users\jowers\Bin
Bây giờ chúng tôi muốn thư mục đó được thêm vào $env:path
biến của chúng tôi mỗi khi chúng tôi mở ứng dụng để quay lại WindowsPowerShell
Thư mục và
> start Microsoft.PowerShellISE_profile.ps1
Sau đó thêm cái này
$env:path += ";\Users\jowers\Bin"
Bây giờ, shell sẽ tự động tìm các lệnh của bạn, miễn là bạn lưu tập lệnh của mình trong thư mục "Bin" đó.
Khởi chạy lại quyền hạn và nó phải là một trong những tập lệnh đầu tiên thực thi.
Chạy nó trên dòng lệnh sau khi tải lại để xem thư mục mới của bạn trong biến đường dẫn của bạn:
> $env:Path
Bây giờ chúng ta có thể gọi các tập lệnh của mình từ dòng lệnh hoặc từ bên trong một tập lệnh khác đơn giản như sau:
$(customScript.ps1 arg1 arg2 ...)
Như bạn thấy, chúng ta phải gọi chúng bằng .ps1
phần mở rộng cho đến khi chúng ta tạo bí danh cho chúng. Nếu chúng ta muốn có được ưa thích.