Bir komut istemi açıldığında komutları otomatik olarak yürütme


21

Windows'da bir komut istemi açıldığında bazı konsol komutlarını otomatik olarak yürütmenin bir yolunu arıyorum, özellikle bazı komut diğer adlarını ayarlamak için.

Bir komut istemi açıldığında Örneğin, böyle otomatik yüzden kullanabileceği çalıştırılmak üzere aşağıdaki gibi bir komut istiyorum lsyerine dir.

doskey ls=dir

Bu nasıl yapılabilir?



3
Windows XP'de DOS yoktur.
user1686

@KContreau, ilginç. Benim gruplar için sebep olurdu Yani sadece "cmd / k" veya "cmd / c" ... ile, bir "/ başlangıç ayrı" komutundan sonra doskey subsitutions tasarruf değil
kokbira

"Açıklama" sürümünden sonra soru başlığını değiştirmek zorunda mıyız?
kokbira

1
@KCotreau: Teknik olarak, Win32 Konsol alt sisteminin bir parçasıdır, spesifik değildir cmd.exe.
user1686

Yanıtlar:


9

Oturum açtığınızda değil, önyüklemede yüklenmesini istiyorsanız, XP Pro'nuz varsa (XP home gpedit.msc içermiyorsa), bunu yapın:

Başlat> Çalıştır> gpedit.msc

ve enter tuşuna basın. Sonra komut satırından gpupdate / force komutunu çalıştırın.

Adresine git

Bilgisayar Yapılandırması> Windows Ayarları> Komut Dosyaları> Başlangıç

ve konumu betiğe ekleyin.

Bunu, altında kullanıcı oturum açma için de yapabilirsiniz.

Kullanıcı Yapılandırması> Windows Ayarları> Komut Dosyaları> Başlangıç

XP Home'unuz varsa, komut dosyalarını aşağıdakilerden birine kopyalayabilirsiniz:

C: \ Windows \ System32 \ GroupPolicy \ Makinası \ Scripts \ Startup

önyüklemeye yüklemek için veya:

C: \ Windows \ System32 \ GroupPolicy \ Kullanıcı \ Scripts \ Oturum

oturum açmış bir kullanıcı için yüklemek için. GroupPolicy klasörü gizlidir.


1
Bu yöntemi başlangıç ​​klasörüne koymayı tercih ederim. Daha kalıcı hale getirir.
Joe Taylor

1
@Joe Taylor Teşekkürler. Dürüst olmak gerekirse, Başlangıç ​​klasörünü yalnızca Outlook'u başlatmak gibi şeyler için kullanıyorum. Bu, sistem yönetimi açısından bunu yapmanın daha standart bir yoludur.
KCotreau

@KContreau, çözümünüz çok faydalı, ancak bu durumda değil. Ben ... test ama doskey ikame komutu için işlevi yok
kokbira

@kokbira Orijinal soru basitçe "XP'de başlangıçta bir komut dosyası nasıl çalıştırılır?" Düzenledi ve sonra "örneğin ve doskey ls = dir" bölümünü ekledi.
KCotreau

1
@KContreau, haklısın, sorun şu ki, bu sorunun başlığı doğru değil. "Açıklama" o "bir DOS komut istemi, özellikle bazı takma adlar başlatmak için bazı DOS komutlarını çalıştırmak" istediğini söyledi . Windows başladığında bazı komutlar yapmak için çözümünüz iyi, ancak takma adları çalıştırmak uygun değil.
kokbira

47

Komut diğer adları, onları yapılandırdığınız konsol penceresine özgüdür, bu nedenle bir başlangıç ​​komut dosyası çalışmaz. Bunu şu şekilde yapabilirsiniz:

  1. Doskey komutlarınızla bir toplu iş dosyası ( .cmd) oluşturun , Uygulama Verileri içinde bir yere koyun.

  2. Cmd'yi her açışınızda otomatik olarak başlatılacak şekilde yapılandırın . Ayar Kayıt Defteri'nde:

    • anahtar: HKCU\SOFTWARE\Microsoft\Command Processor
    • değeri: AutoRun
    • şunu yazın: REG_EXPAND_SZ
    • veri: "%AppData%\aliases.cmd"

1
Bu, komut isteminin her zaman derleyici yollarını yüklemesini istediğim bir Win2K Sanal İşletim Sistemi için harika bir çözümdü. Tek fark REG_EXPAND_SZ yerine REG_SZ kullanımıydı
James

Bu güzel bir çözüm. Şans eseri, ilk çıktıyı bastırmanın bir yolu var mı?
nburr

1
@Nickolas: Komutları her zamanki gibi NUL'a yönlendirilsin mi?
user1686

Bu güzel çalışır, ancak "Sistem belirtilen yolu bulamıyor" gibi hatalara neden olan Windows kaynak derleyicisine (rc.exe) müdahale edebilir. Bkz. Visual Studio Shell Isolated projesi derlenmemektedir .
Kullanıcı5910

Önce dosyanın varlığını denetleyerek ayarlayarak bu if exist "%AppData%\aliases.cmd" "%AppData%\aliases.cmd"
sorunu giderdim

4

Farklı komut yorumlayıcıları, komut diğer adlarını farklı şekillerde işler.

Microsoft'un CMD'si, komut diğer adlandırma mekanizmasını sağlamak için Win32 konsol alt sistemine güvenir. doskeyKomut aslında süreç konsol ile etkileşim kurar ve bu adlar tutan konsol kendisidir. Böylece takma adlar konsol başına ve geçicidir.

JP Software'in TCC / LE diğer adlarını kendisi yönetir. aliasKomut bir ya "yerel" veya "küresel" dir takma adları görüntülemek ve değiştirmenize olanak verir. Takma adlar hala geçicidir, ancak bir komut yorumlayıcı işlemine özeldir veya tüm komut yorumlayıcı işlemleri arasında (tüm konsollarda) paylaşılır.

Araçları , Windows 7 Ultimate sürümü ve Windows Server 2008 R2 ile birlikte kutuda gelen UNIX Tabanlı Uygulamalar için Alt Sistem'de çalışan SFUA yardımcı programı araç setindeki Korn kabuğu gibi kabuklar (Windows XP için, biri karşıdan yükleyip kurabilir UNIX sürüm 3.5 için hizmetler .) - ve cygwin'den Bourne Again kabuğu benzer şekilde takma adları kendileri ele alır. Takma adlar geçicidir ve komut yorumlayıcı işlemi başınadır.

Varsayılan bir başlangıç ​​diğer ad grubunu otomatik olarak yüklemek de komut yorumlayıcısına göre değişir.

Her durumda, bir tür bir komut dosyasında diğer adları ayarlamak için komutlar yerleştirilir.

grawityMicrosoft CMD'nin bir komutu başlatırken çalıştırmasına neden olan iki kayıt defteri anahtarından birini zaten vermiştir . Maalesef, diğer adların kendileri konsol başına depolanmış olsa bile, bu komut yorumlayıcı işlemidir . İlk komuttan ikincil bir komut yorumlayıcısı başlatın, varsayılan takma adlarda yapılan herhangi bir manuel değişiklik sıfırlanır. Konsol başına en az bir kez başlatma gerçekleştiren bir alternatif, komut yorumlayıcısını başlatan kısayoldaki komut kuyruğunu /Kçağıran bir komut dosyasının seçeneğini ve adını eklemektir doskey.

JP Software'in TCC / LE komut dosyası başlatıldığında otomatik olarak çalışırTCSTART . Yine, bu komut yorumlayıcı işlemidir. Ancak, TCC'nin "yerel" takma adları da komut yorumlayıcı işlemi için geçerlidir, bu nedenle yerel takma adlar kullanılıyorsa takma adları başlatmak için doğru yer burasıdır. Genel takma adlar için, Startupklasörünüzde bir dosyadan takma adlar yükleyen (ile alias /r) bir kısayol oluşturun ve bu kısayolun çalışmasını tamamladıktan sonra da devam edecek şekilde shraliaskomutu çalıştırabilirsiniz.

Bourne Again ve Korn mermileri için, bu mermileri başka herhangi bir platformda olduğu gibi yapın. Bourne Again kabuğu için ve komut dosyalarındaki aliaskomutu kullanın ; ve Korn kabuğu için ENV ve komut dosyalarındaki komutu kullanın .$HOME/.profile$HOME/.bashrcalias$HOME/.profile$HOME/.kshrc


2

Gravity'nin yanıtı benim için çok işe yaradı.

Belgelerim klasöründe bir kabuk-aliases.cmd komut dosyası oluşturdum (Daha sonra bulabileceğim bir yer).

Sonra kayıt defteri anahtarında 'AutoRun' Genişletilebilir Dize Değeri oluşturuldu:

'HKEY_CURRENT_USER \ Yazılım \ Microsoft \ Komut İşlemcisi'

Değeri takma ad dosyasının tam yoluna ayarlayın (Mine 'C: \ Users \ Lee \ Documents \ shell-aliases.cmd' idi).

Komut istemini yeniden yükledikten sonra doskey takma adlarım çalıştı. Ayrıca benim takma ad dosyama kolayca erişilebilir ve eklemek için daha fazla düşündüğüm gibi düzenlemeye hazır.


0

Yapılacak birkaç konum vardır, ancak başlat menüsü> başlangıç ​​klasörü muhtemelen en kolayıdır.

'Msconfig' komutunu çalıştırın ve hangi programların başladığını ve nedenini görün. Programınızı bu listelerden birine ekleyebilirsiniz (örneğin, kayıt defterinde).


0

Buradaki sorun, başlangıçta yaparsanız, bu değiştirmeler yalnızca açılan CMD isteminde kullanılabilir. Kapanırsa, tüm bu değiştirmeler kaybedilir ve seçilen her komut istemi için tekrar yapılması gerekir.

Yani, bazı alternatif yollar (bunları birleştirebilirsiniz):

I. Bir toplu iş ve bir kısayol oluşturun:

  1. Bu makrolarla bir toplu iş oluşturun ve bilinen bir yere kaydedin (örn. C: \ apps \ mycmd.bat).
  2. Masaüstünde (veya istediğiniz yerde) yolundan önce "cmd / k" koyarak bir kısayol oluşturun (örn. "Cmd /kc:\apps\mycmd.bat").
  3. Bu kısayolu her açışınızda tüm komutlarınız çalıştırılacaktır.

II. PATH çevre değişkeninde bir toplu iş ve girdi oluşturun:

  1. Bu makrolarla bir toplu iş oluşturun ve bilinen bir yere kaydedin (örn. C: \ apps \ mycmd.bat).
  2. Denetim masası> Sistem> Gelişmiş yapılandırmalar> Gelişmiş> Çevre değişkenleri'ne gidin.
  3. Kullanıcı veya Sistem girişlerinde PATH adlı bir değişken arayın. Üzerine çift tıklayın ve sonunda ";" ve BAT'ınızın yolunu (ör. "c: \ apps \" => "önceki_dizesi; c: \ apps \"), ardından Tamam ve Tamam.
  4. Bu nedenle, bir cmd (veya bir BAT dosyasında) kullandığınızda, komutlarınızı çalıştırmak için bir BAT adını oluşturulan yola (örn. "C: \ apps") koyun (örn. Bu değiştirme komutlarını çalıştırmak için "myapps" yazın).

1
"Başlat / ayır" işlevini denedim, ancak yalnızca ortam değişkenini kaydeder (doskey komutunun yerine kullanılmaz) ... "set" komutu yalnızca açılan istem için de geçerlidir, ancak sisteme kaydetmek için "setx" kullanabiliriz veya kullanıcı çevre değişkenleri "sonsuza dek". Doskey yerine "sonsuza kadar" sisteme veya her Windows başlatma için kaydetmek için bir yol olup olmadığını bilmiyorum.
Yollarımı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.