Trong Linux, chúng ta có lệnh "which" để tìm ra đường dẫn của một tệp thực thi.
Tương đương Windows của nó là gì? Có lệnh PowerShell nào để làm việc đó không?
Trong Linux, chúng ta có lệnh "which" để tìm ra đường dẫn của một tệp thực thi.
Tương đương Windows của nó là gì? Có lệnh PowerShell nào để làm việc đó không?
Câu trả lời:
Một số phiên bản Windows (tôi nghĩ Windows 2003 trở lên) có lệnh where:
c:\>where ping
C:\Windows\System32\PING.EXE
where
làm việc cho tôi trong Windows 7
where /r c:\ fileName
thêm / rc: \ cho phép tôi thực hiện tìm kiếm đệ quy bắt đầu từ thư mục gốc của ổ C bằng Windows 7 Professional, nó dường như không có trong access.redhat.com/documentation/en-US/Red_Hat_ Entryprise_Linux / điều
where.exe ping
bởi vì where
theo mặc định là bí danh của Where-Object
cmdlet, đó là câu chuyện hoàn toàn khác
where.exe
rõ ràng thay vì where
làm việc cho tôi trong PowerShell
Có, Get-Command
sẽ tìm thấy tất cả các lệnh bao gồm cả thực thi:
PS\> Get-Command ipconfig
Nếu bạn muốn giới hạn các lệnh chỉ thực thi:
PS\> Get-Command -CommandType Application
Sẽ tìm thấy tất cả exes trong con đường của bạn. Có một bí danh để sử dụng tương tác:
PS\> gcm net* -CommandType Application
Để có được đường dẫn của một tệp thực thi, bạn có thể sử dụng thuộc Path
tính của đối tượng được trả về. Ví dụ:
PS\> (Get-Command notepad.exe).Path
Để biết thêm thông tin, hãy chạy man Get-Command -full
.
Nếu bạn muốn làm cho nó ngắn, hãy tạo một tệp which.cmd với nội dung
echo %~$PATH:1
Điều này sẽ tìm kiếm tham số đầu tiên (% 1) được cung cấp cho tập lệnh và hiển thị đường dẫn đầy đủ của tệp tìm thấy. Vị trí tốt để đặt tập lệnh này trong windows 10 là% LOCALAPPDATA% \ Microsoft \ WindowsApps \ which.cmd
Và bạn nhận được lệnh nào trong đường dẫn.
c:\>which cmd.exe
c:\>echo C:\Windows\System32\cmd.exe
C:\Windows\System32\cmd.exe
where.exe
rõ ràng hơn là where
hoạt động với tôi trong PowerShell:
PS C:\Users\birdc> where ping
PS C:\Users\birdc> where.exe ping
C:\Windows\System32\PING.EXE
where ping
cho tôi biết gì về PowerShell.
where.exe
.