Tôi chạy tập lệnh PowerShell. Làm cách nào để có được đường dẫn thư mục của tập lệnh này mà tôi chạy?Làm cách nào để lấy thư mục của tập lệnh PowerShell mà tôi thực thi?
Cách thực hiện việc này?
Tôi chạy tập lệnh PowerShell. Làm cách nào để có được đường dẫn thư mục của tập lệnh này mà tôi chạy?Làm cách nào để lấy thư mục của tập lệnh PowerShell mà tôi thực thi?
Cách thực hiện việc này?
PowerShell 3 có $PSScriptRoot
automatic variable:
Chứa các thư mục mà từ đó một kịch bản đang được chạy.
Trong Windows PowerShell 2.0, biến này chỉ hợp lệ trong các mô-đun tập lệnh (.psm1). Bắt đầu từ Windows PowerShell 3.0, nó hợp lệ trong tất cả các tập lệnh.
Đừng để bị lừa bởi từ ngữ kém. PSScriptRoot
là thư mục của tệp hiện tại.
Trong PowerShell 2, bạn có thể tính toán giá trị của $PSScriptRoot
mình:
# PowerShell v2
$PSScriptRoot = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
Tại sao bỏ phiếu xuống? Giúp tôi làm cho câu trả lời của tôi tốt hơn. Vui lòng cung cấp phản hồi! –
Tôi là một chút mới để powershell, bạn có thể mở rộng trên $ MyInvocation.MyCommand.Definition? Tôi thấy điều này trong nhiều bài viết và nó có vẻ giống như một trình giữ chỗ, nhưng đối với những gì? – Sinaesthetic
Đồng ý: là 'MyCommand.Definition' một cái gì đó tôi phải gõ hoặc thay thế bằng tên kịch bản của tôi? Tôi chỉ cố gắng tại dấu nhắc lệnh, và tôi không nhận được gì từ điều này? – monojohnny
nào bạn muốn thư mục làm việc hiện tại của quá trình này? – Bill
Không, tôi muốn biết thư mục nào chứa tập lệnh này. – user2131116
nếu bạn biết tên tệp, bạn có thể sử dụng 'get-childItem' để tìm đường dẫn của nó. http://stackoverflow.com/questions/8677628/recursive-file-search-using-powershell – Bill