Apa yang setara dengan "~" (tilde) Linux di Windows?

72

Di Linux, kita bisa menuju rumah pengguna dengan memasukkan karakter tilde ( ~) setelah cd:

cd ~

Bagaimana melakukan hal yang sama di Windows?

Setiap kali, saya perlu mengetik:

cd C:\Document and Settings\freewind

Itu terlalu membosankan.

Jalan bebas
sumber
2
Pertimbangkan untuk menggunakan cygwin?
Paul R
8
sebenarnya, '~' adalah default untuk 'cd' di sebagian besar shell Linux, jadi hanya 'cd' sudah cukup untuk pergi ke homedir Anda
@ Peringatan: Lihat stackoverflow.com/questions/998626/…
abatishchev
4
Jawabannya sederhana "cd ~" .. artinya, Anda dapat menggunakan perintah yang sama di Windows juga. Tapi, Anda tidak boleh mencoba perintah ini di CMD karena sudah usang sekarang & pengembangannya dihentikan oleh Microsoft. Gunakan "Windows PowerShell" dan perintah yang sama akan bekerja dengan lancar.
Apple II
3
PowerShell dikirimkan bersama Win7 +
Isaac Dontje Lindell

Jawaban:

43

cd /d "%HOMEDRIVE%%HOMEPATH%" akan melakukannya - tapi saya tidak yakin jika Anda menganggapnya sebagai peningkatan.

Anda juga dapat menetapkan alias untuk perintah di atas:

doskey cdhome=cd /d "%HOMEDRIVE%%HOMEPATH%"

Setelah ini, cukup sederhana cdhome.

Jon
sumber
4
@ Freewind: Anda harus menyukai shell Windows default.
Jon
10
@abatishchev: Pertanyaan bagus. Pertanyaan tentang SF ini sepertinya mengindikasikan bahwa% USERPROFILE% lebih disukai.
Jon
3
Anda juga dapat menggunakan cd ~ sebagai nama makro, sebagai gantinya jika cdhome.
jftuga
3
@abatishchev: Akun Windows NT dapat memiliki jalur "direktori rumah" yang dilampirkan yang terpisah dari "direktori profil". Profil menyimpan pengaturan Anda (Registry), data aplikasi, dan semacamnya. Direktori rumah, di sisi lain, adalah untuk file Anda sendiri - ketika sebuah program menampilkan dialog "Buka / Simpan" untuk pertama kalinya, itu akan mulai di direktori home. (Windows 95/98 menggunakannya agak berbeda; tidak dapat mengingat spesifiknya.) Ini berguna dalam lingkungan Active Directory, untuk menyimpan file pada jaringan yang dibagikan tetapi menjaga profil tetap lokal.
grawity
2
@ jftuga: Atau bahkan ~.
grawity
63

Anda dapat menggunakan cd /d %USERPROFILE%jika Anda menggunakan cmd.

atau Anda dapat menggunakan cd ~jika Anda menggunakan PowerShell.

Nocturn
sumber
4
+1 tetapi juga menambahkan tanda kutip di sekitar variabel (mungkin itu c:\documents and settings\..., spasi akan mematahkannya kecuali itu dikutip)
Jon
7
@ Jon: cdadalah pengecualian. Karena selalu membutuhkan argumen tunggal, mengutip tidak perlu. (Pada Windows, program dan built-in harus mengurai sendiri baris perintah mereka, shell tidak melakukannya.) Selalu mengutip jalur adalah praktik yang baik.
grawity
1
@barlop: biasanya CommandLineToArgvW () ; runtime CLR / MinGW / Cygwin juga menggunakan padanannya sendiri secara otomatis sebelum memanggil main (). Beberapa program, bagaimanapun, memiliki parser yang ditulis seluruhnya dari awal, misalnya, cmd.exesendiri dan aneh /c.
grawity
1
@barlop: Tidak jika Anda mencoba menggunakan tanda kutip (atau pengalihan) sebagai bagian dari perintah yang diberikan. Apakah itu /c "C:\foo bar\baz" "my file.txt"atau /c "\"C:\foo bar\baz\" \"my file.txt\""atau /c ""C:\foo bar\baz" "my file.txt""? Yang lebih buruk lagi adalah bahwa parsing tergantung pada apakah /sditentukan sebelumnya, kehadiran karakter khusus, apakah executable tersebut bernama C:\foo bar\bazatau hanya C:\foo...
grawity
1
@TheLQ Script batch masih lebih mudah. Saya dapat mencapai hasil yang sama dengan mengetik satu karakter. Lihat jawaban saya di bawah untuk penjelasan.
weberc2
13

Satu kemungkinan adalah menggunakan substperintah dari prompt perintah:

subst z: C:\Document and Settings\freewind

Setiap kali Anda menavigasi ke drive Z :, Anda akan melihat folder pengguna Anda.

Kelemahannya adalah Anda harus menjalankannya setiap kali Anda masuk. Saya menggunakan file batch dan memasukkannya ke folder startup saya, tetapi mungkin ada solusi yang lebih elegan untuk ini.

Keuntungannya adalah tidak seperti alias doskey, ia berfungsi secara universal (windows explorer, browse dialog, dll.), Tidak hanya ketika mengubah direktori pada command prompt. Ini sangat membantu untuk program lama dengan dialog browse lama yang memiliki huruf drive di tingkat paling atas, daripada "desktop".

mo.
sumber
Anda dapat memetakan drive dan membuatnya memetakan secara otomatis setelah login. Tidak perlu menggunakan subst
phuclv
1
@ LưuVĩnhPhúc Ini mungkin tidak sepenuhnya logis, tapi saya cenderung menghindari hal-hal jaringan windows kecuali saya benar-benar harus menggunakannya. Saya merasa kinerja dan keandalan ... tidak dapat diprediksi? Dengan segala cara jika Anda memiliki alternatif, bahkan lebih baik, cara melakukannya, silakan posting dalam jawaban sendiri untuk kepentingan semua orang :)
mo.
6

Kamu bisa melakukan ini:

cd %homepath%
Bali C
sumber
5
Ini akan pecah jika Anda berada di drive yang berbeda - mis. Anda aktif E:dan homedir Anda aktifC:
Piskvor
4

Anda dapat membuat file batch yang disebut ~.batmengandung

@echo off
cd /d %USERPROFILE%

Dan tambahkan ke variabel PATH Anda (Mulai -> [klik kanan pada "Komputer"] -> Properti -> "Pengaturan Sistem Lanjut" [di kolom kiri] -> "Variabel Lingkungan"

Dari sana, cukup edit variabel PATH Anda untuk memasukkan folder yang berisi ~.batfile Anda . (Ini memungkinkan Anda menjalankan skrip dari mana saja hanya menggunakan nama file - bukan jalur absolut ke file)

Selain itu, pastikan PATHEXTvariabel lingkungan Anda berisi .BATsuatu tempat (ini memungkinkan Anda mengetik ~bukan ~.bat).

Saat Anda perlu menggunakannya, cukup masukkan ~pada command prompt. Solusi ini gigih - Anda tidak perlu mengaturnya setiap kali Anda meluncurkan shell, dan Anda tidak perlu meretas registri Anda.

weberc2
sumber
2

Sayangnya, saya tidak mengetahui solusi yang sempurna tetapi ada beberapa opsi hacky:

Opsi 1: Set ~ menjadi perintah alias dengan doskey

doskey ~=cd /d %USERPROFILE%

Ini akan memungkinkan Anda untuk cukup mengetik ~dan memilikinya chdir ke homedir Anda.

C:\>~
C:\Users\a>

Jelas, ini mempersingkat jumlah penekanan tombol untuk pulang (bahkan dibandingkan dengan Linux), tetapi kurang kuat karena Anda tidak dapat benar-benar menggunakannya sebagai bagian dari jalur lain atau melakukan banyak hal selain hanya melakukan home.

Opsi 2: Set ~ menjadi variabel

Opsi lain, jika Anda menginginkan opsi yang lebih kuat adalah dengan mengatur var:

set ~="%USERPROFILE%"

tetapi menggunakan ini akan digunakan seperti:

E:\>cd /d %~%
C:\Users\a>

Itu juga dapat disuntikkan ke sebagian besar jalan dan tidak membatasi Anda untuk hanya pulang ke rumah.

Kedua opsi secara bersamaan

Anda juga dapat mengimplementasikan kedua metode secara bersamaan. Jika Anda memiliki% di sekitarnya, maka ia akan menggunakan variabel - jika tidak maka akan diperlakukan ~sebagai perintah.

C:\>:: ECHO (display) THE VALUE OF %~%
C:\>echo %~%
C:\Users\a

C:\>:: ChDir to ~\DESKTOP
C:\>cd /d %~%\Desktop

C:\Users\a\Desktop>:: USE THE ~ COMMAND
C:\Users\a\Desktop>~

C:\Users\a>

Satu tip lain (agak terkait):

Ini kemungkinan besar tidak dapat diterima di mesin perusahaan, setidaknya di PC rumah Anda, untuk menghemat penekanan tombol tambahan, itu bukan ide yang buruk untuk membuat %USERPROFILE%dir Anda nama yang sederhana. Seperti yang dapat Anda lihat dari contoh saya di atas, dir user saya adalah C:\Users\a- Saya dulu selalu memiliki 'aplocher' atau 'adamp' dan ketika saya berubah menjadi satu huruf, itu ajaib.

Adam Plocher
sumber
1

Dalam Powershell %variable%sintaks tidak berfungsi. Kamu bisa melakukan ini :

cd $env:USERPROFILE
Elzo
sumber
2
Anda bisa menggunakannya cd ~di PowerShell.
wjandrea
0

Menggunakan PowerShell, Anda dapat mencoba metode berikut untuk menavigasi direktori dari mana saja asalkan Anda tahu nama pengguna Anda dan memiliki izin direktori file yang diberikan.

cd \..\Users\yourUserName\Documents
cd \..\Users\yourUserName\Downloads
cd \..\Users\yourUserName\Desktop
cd \..\Users\yourUserName\music

Lihat contoh di bawah ini di PowerShell (64bit). Saya menguji ini pada kotak Windows 7 Pro 64bit.

Linux Lilde setara pada Windows 7 Pro 64 Bit

Array penuh
sumber