Đặt $ HOME trong PowerShell


29

Làm cách nào để thay đổi thư mục chính mặc định của tôi thành "C: \ Users \ khornsby" cho mỗi lần tôi mở powershell?

Tôi đang chạy Windows 7. Dưới đây là thông tin về trạng thái môi trường của tôi.

Windows PowerShell
Bản quyền (C) 2009 Tập đoàn Microsoft. Đã đăng ký Bản quyền.

PS P: \> cd ~
PS P: \>echo $HOME
P: \
PS P: \> HOME="C:\Users\khornsby"
Thuật ngữ 'HOME = C: \ Users \ khornsby' không được công nhận là tên của một lệnh ghép ngắn,
chức năng, tập tin kịch bản, hoặc chương trình có thể hoạt động. Kiểm tra chính tả của tên, hoặc
nếu một đường dẫn được đưa vào, hãy xác minh rằng đường dẫn đó là chính xác và thử lại.
Tại dòng: 1 char: 25
+ HOME = "C: \ Người dùng \ khornsby" 

PS P: \> Set-Variable HOME "C:\Users\khornsby"
Biến-Set: Không thể ghi đè biến HOME vì nó chỉ đọc hoặc
không thay đổi.
Tại dòng: 1 char: 13
+ Biến-Set 

PS P: \> dir env:home*

Tên giá trị
---- -----
TRANG CHỦ \
TRANG CHỦ P:
HOMESHARE \\ fileserv \ khornsby $


PS P: \>

2
Làm thế nào bạn định dạng bài viết của bạn? Tôi thích cách bạn gõ được tô sáng.
Jay Bazuzi

3
Tôi đã sử dụng <kbd>thẻ.
kzh

Câu trả lời:


27

Biến chỉ được đọc theo mặc định, nhưng có thể được loại bỏ bằng cách -Forcechuyển sang Loại bỏ biến. Để thay đổi của bạn liên tục qua các phiên, bạn có thể tạo một tệp hồ sơ giống như .bashrc(Đối với bash trên Linux) ngoại trừ Powershell.

Trong thư mục Tài liệu của bạn (thông thường C:\Users\YOUR_USERNAME_HERE\documents) cho tài khoản người dùng của bạn, hãy tạo thư mục WindowsPowerShell (được đặt tên chính xác như thế) nếu không tồn tại. Trong thư mục, tạo một tệp văn bản có tên profile.ps1 ( đảm bảo nó không phải profile.ps1.txt ).

Trong tệp, đặt bất cứ thứ gì bạn muốn thực thi khi bạn mở Powershell.

thí dụ:

Write-Host "Hi John, welcome back!"
Remove-Variable -Force HOME
Set-Variable HOME "C:\Users\khornsby"

kết quả:

văn bản thay thế


1
Bạn cũng có thể chạy tập lệnh khi khởi động từ một phím tắt, chỉ vào: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -ExecutionPolicy bypass -File C:\foo\profile.ps1
paradroid

1
Tôi đã thử điều này và nó thay đổi thành công giá trị của $ HOME. Nhưng "cd ~" vẫn ngoan cố chuyển sang vị trí ban đầu.
Weeble

2
@ Weeble, xem câu trả lời của tôi để ghi đè phím tắt ~.
ulty4life

9

Để giải quyết mối quan tâm của @ Weeble về ~phím tắt:

$HOMEDRIVE = "C:\"
$HOMEPATH = "Users\" + $env:username

# Set and force overwrite of the $HOME variable
Set-Variable HOME "$HOMEDRIVE$HOMEPATH" -Force

# Set the "~" shortcut value for the FileSystem provider
(get-psprovider 'FileSystem').Home = $HOMEDRIVE + $HOMEPATH

Xem ở đây để phân biệt giữa ~ và $ HOME


1
cd $HOMECuối cùng, nó đáng để thêm vào, vì vậy phần vỏ sẽ bắt đầu ở vị trí đó và sẽ được thiết lập để sử dụng :)
Eliran Malka

5

Thậm chí dễ dàng hơn ... mở các cài đặt hệ thống nâng cao ...

 C:\> systempropertiesadvanced

Thêm một biến hệ thống mới có tên HOME với đường dẫn đến hồ sơ của bạn

nhập mô tả hình ảnh ở đây

Khởi động lại explorer hoặc đăng xuất và quay lại ...

PS C:\> $Env:home 
--- 

3
Điều này không làm những gì câu hỏi yêu cầu. Điều này đặt biến môi trường $ env: HOME, không phải biến Powershell $ HOME. Biến Powershell $ HOME dường như được lấy từ các biến môi trường $ env: HOMEDRIVE và $ env: HOMEPATH tại thời điểm quá trình Powershell bắt đầu. Đó là $ HOME xác định hành vi của "cd ~".
Weeble

2
Xin lỗi, tuyên bố cuối cùng không hoàn toàn đúng. $ HOME và hành vi của "cd ~" đều xuất hiện khớp với các giá trị của biến môi trường HOMEDRIVE và HOMEPATH khi quá trình Powershell bắt đầu. Sau đó, việc thay đổi bất kỳ biến nào trong số các biến / biến môi trường này dường như không có tác dụng đối với thư mục được chọn bởi "cd ~".
Weeble

Hoạt động tốt với tôi .... Tôi không biết bạn đang làm gì khác.
Eddie B

3

Để thay đổi từ bên trong Windows, hãy thử các cách sau:

  • Ghim PowerShell vào thanh tác vụ.

  • Nhấp chuột phải vào biểu tượng PowerShell trên thanh tác vụ.

  • Nhấp chuột phải vào 'Windows PowerShell' và chọn 'Thuộc tính'.

  • Trong cửa sổ 'Thuộc tính', chuyển đến tab 'Phím tắt' và thay đổi trường 'Bắt ​​đầu trong:' thành thư mục bắt đầu mong muốn của bạn. (Ví dụ :).C:\Users\username\Desktop

  • Nhấp vào 'OK'.

  • Khởi chạy PowerShell từ thanh tác vụ.

    thanh tác vụ

    Cửa sổ thuộc tính


không hoạt động khi chọn 'chạy với tư cách quản trị viên'
devi

2

Bạn có thể sử dụng help about_profilesđể xem thêm chi tiết về điều này. Đừng quên ký vào kịch bản của bạn.


3
helptừ ứng dụng nào?
kzh

@kzh: PowerShell
paradroid
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.