Встановлення $ HOME в PowerShell


29

Як я можу змінити домашній каталог за замовчуванням на "C: \ Users \ khornsby" кожного разу, коли я відкриваю панель повноважень?

Я працюю під управлінням Windows 7. Нижче є інформація про стан мого середовища.

Windows PowerShell
Авторські права (C) 2009 корпорація Microsoft. Всі права захищені.

PS P: \> cd ~
PS P: \>echo $HOME
P: \
PS P: \> HOME="C:\Users\khornsby"
Термін "HOME = C: \ Users \ khornsby" не розпізнається як ім'я командлета,
функція, файл сценарію або операційна програма. Перевірте написання назви, або
якщо шлях включений, переконайтеся, що шлях правильний, і спробуйте ще раз.
По черзі: 1 чар: 25
+ HOME = "C: \ Користувачі \ khornsby" 

PS P: \> Set-Variable HOME "C:\Users\khornsby"
Set-Variable: Неможливо замінити змінну HOME, оскільки вона доступна лише для читання або
постійний.
На рядку: 1 char: 13
+ Установка змінної 

PS P: \> dir env:home*

Значення імені
---- -----
ДОМАШНЯ ГОЛОВНА \
HOMEDRIVE P:
HOMESHARE \\ fileserv \ khornsby $


PS P: \>

2
Як у вашому форматі була ваша публікація? Мені подобається, як виділено те, що ви ввели.
Джей Базузі

3
Я використав <kbd>тег.
кж

Відповіді:


27

Змінна зчитується лише за замовчуванням, але її можна видалити за допомогою -Forceперемикача на Remove-Variable. Щоб зміни були стійкими протягом сеансів, ви можете створити файл профілю, який дуже схожий на .bashrc(для баш в Linux), за винятком Powershell.

У своєму каталозі Документи (як правило C:\Users\YOUR_USERNAME_HERE\documents) для свого облікового запису користувача створіть папку WindowsPowerShell (названа саме так), якщо такої ще не існує. Всередині папки створіть текстовий файл під назвою profile.ps1 ( переконайтеся, що це не profile.ps1.txt ).

Всередині файлу помістіть все, що ви хочете виконати, коли відкриєте Powershell.

приклад:

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

результат:

alt текст


1
Ви також можете запустити сценарій при запуску з ярлика, вказуючи на: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -ExecutionPolicy bypass -File C:\foo\profile.ps1
paradroid

1
Я спробував це, і це успішно змінює значення $ HOME. Але "cd ~" все ще вперто переходить на початкове місце.
Weeble

2
@Weeble, дивіться мою відповідь щодо зміни ярлика ~.
ulty4life

9

Щоб вирішити проблему @Weeble щодо ~ярлика:

$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

Дивіться тут про різницю між ~ та $ HOME


1
варто додати cd $HOMEнаприкінці, тому оболонка почнеться в тому місці і буде все готово для використання :)
Eliran Malka

5

Ще простіше ... відкрити розширені налаштування системи ...

 C:\> systempropertiesadvanced

Додайте нову системну змінну під назвою HOME із шляхом до вашого профілю

введіть тут опис зображення

Перезапустити Explorer або вийти з системи та знову увійти ...

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

3
Це не робить те, що задає питання. Це встановлює змінну середовища $ env: HOME, а не змінну Powershell $ HOME. Здається, що змінна Powershell $ HOME є похідною від змінних середовища $ env: HOMEDRIVE та $ env: HOMEPATH під час запуску процесу Powershell. Саме $ HOME визначає поведінку "cd ~".
Weeble

2
Вибачте, останнє твердження не зовсім вірно. $ HOME і поведінка "cd ~" обидва, як видається, відповідають значенням змінних середовища HOMEDRIVE та HOMEPATH при запуску процесу Powershell. Згодом зміна будь-якої з цих змінних / змінних середовища, схоже, не впливає на каталог, обраний "cd ~".
Weeble

Для мене добре працює .... Я не знаю, що ти робиш інакше.
Едді Б

3

Щоб змінити всередині Windows, спробуйте виконати наступне:

  • Закріпіть PowerShell на панелі завдань.

  • Клацніть правою кнопкою миші значок PowerShell на панелі завдань.

  • Клацніть правою кнопкою миші "Windows PowerShell" та виберіть "Властивості".

  • У вікні "Властивості" перейдіть на вкладку "Ярлик" та змініть поле "Почати в:" на потрібний початковий каталог. (Приклад:) .C:\Users\username\Desktop

  • Натисніть "ОК".

  • Запустіть PowerShell на панелі завдань.

    панель завдань

    Вікно властивостей


не працює, якщо вибрати "запустити як адміністратор"
девіація

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.