Saya tahu cara mengatur judul sebagai direktori saat ini dalam file batch biasa.
Saya ingin melakukan ini untuk jendela cmd yang terbuka ketika Anda melakukan "buka perintah jendela di sini" dari folder Windows (secara otomatis).
Saya tahu Anda dapat menjalankan file batch pada startup cmd apa pun dan saya telah melihat jawaban untuk mendapatkan nama direktori tetapi mencoba untuk mendapatkan nama direktori hanya memberi Anda nama langsung di mana autorun.cmd
file itu berada, bukan nama direktori yang " buka jendela perintah di sini cd
.
Sepertinya pada saat autorun.cmd
dipanggil itu belum memiliki informasi tentang direktori yang akan berubah ke mana "jendela perintah terbuka di sini" dipanggil dari. Apakah itu masalahnya? Atau apakah masih ada cara untuk mengubah judul secara otomatis ke direktori saat ini?
sumber
Jawaban:
Saya akan mencoba baris berikut:
Atau dalam file batch Anda akan keluar dari
%
sekali:The
for...do
loop hanya ada untuk mendapatkan jalan saat ini menjadi variabel karena Anda tidak dapat menggunakan~
operator dengan variabel lingkungan seperti (%cd%
).Namun, seperti yang Anda perhatikan, ini tidak akan berfungsi untuk "Command Prompt here", karena ini dijalankan sebelum direktori ditetapkan.
Untuk menghindari ini, Anda pada dasarnya harus mengubah baris perintah yang dipanggil setiap kali Anda menggunakan fungsi ini.
Ini dikontrol oleh dua variabel dalam Registry, keduanya merupakan sub kunci dari
HKEY_CLASSES_ROOT\Directory
:HKEY_CLASSES_ROOT\Directory\shell\cmd\command
: Kunci ini mendefinisikan perintah yang akan dijalankan ketika Anda Shift+ klik kanan ikon direktori / folder.HKEY_CLASSES_ROOT\Directory\Background\shell\cmd\command
: Kunci ini mendefinisikan perintah yang akan dijalankan ketika Anda shift+ klik kanan di suatu tempat di jendela Explorer yang terbuka.Secara default, kedua nilai default ini diatur ke
cmd.exe /s /k pushd "%V"
, yang akan membuka jendela perintah dan mengubah direktori ke parameter yang dilewatkan sebagai%V
.Jadi agar ini berfungsi, Anda harus mengedit dua nilai default dan menambahkan perintah dari atas, sedikit dimodifikasi. Cukup atur kedua nilai default untuk ini:
Perhatikan tanda kutip ganda untuk benar melarikan diri mereka, karena semuanya tertutup dalam satu pasang tanda kutip untuk kelompok segalanya untuk cmd.exe 's
/k
parameter. Di@
sana akan menyembunyikan perintah agar tidak ditampilkan di dalam jendela perintah.Ini berfungsi untuk saya, tetapi ada satu kebiasaan kecil yang terlibat: Jika nama direktori Anda berisi lebih dari satu titik, seperti
one.two.three
, ini akan menamai judulone.two
saja.Perlu diingat juga bahwa judul tidak akan diperbarui ketika Anda CD ke direktori lain. Membuat ini bekerja akan sedikit lebih rumit (atau mungkin bahkan tidak mungkin; jangan coba-coba).
sumber
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\cmd\command
. Dan: Ini mengabaikan spasi (Ini memberi judul "Folder" untuk "Folder Baru")HKCR
hanyalah "jalan pintas". :) Adapun mengabaikan ruang: Ya, itu mungkin beberapa sisa dari zaman DOS lama (seperti batasan satu titik).Extended
nilai di bawahcmd
tombol. Meskipun memang memungkinkan beberapa alat lain mengedit izin dan semacamnya untuk menghindari modifikasi / reset lebih lanjut.for
perintah,cmd.exe /s /k "pushd ""%V"" & title %V"
sudah cukup. Lihat pertanyaan ini: superuser.com/questions/414155/… (Sebelumnya ketika menulis jawaban saya untuk pertanyaan Anda, saya lupa bahwa pertanyaan itu sudah dijawab di tempat lain)Terinspirasi oleh pertanyaan, saya telah menambahkan beberapa fungsi menyenangkan ke baris perintah pada Windows saya: perintah pseudo
cdn
,pushdn
danpopdn
(mengikuti N = acronymous new atau penamaan atau bahkan nonsens atau apa pun lainnya) yang berkaitan dengancd
,pushd
danpopd
perintah. Mereka semu perintah membantu untuk menjaga sayacmd
paralel judul jendela kecmd
jalur direktori saat ini sebagai berikut:untuk setiap drive
X:
dan kedalaman sewenang-wenangsubpath
.Contoh kode:
cdn.bat
ditempatkan ke folder apa pun secara eksplisit dalampath
variabel lingkungan.Senang berbagi kegembiraan saya.
sumber
Ini sekarang memungkinkan untuk selalu mendapatkan informasi terbaru secara otomatis setelah perintah apa pun, tanpa mendefinisikan ulang 'cd' dll. Lihat Ubah prompt perintah untuk hanya menampilkan nama direktori saat ini
sumber