Global, kalıcı bir CMD geçmişi var mı?


99

Bazen bir CMD komutunun tam sözdiziminin nasıl göründüğünü unutuyorum ve sonra kendi CMD geçmişimi aramak istiyorum. Açıkça, aynı oturumda, yukarı ve aşağı ok tuşlarını kullanarak göz atabilirsiniz, peki ya eski CMD oturumlarının geçmişi? Bir dosya var mı, tarihin yazdığı bir günlük var mı yoksa hepsi dijital Nirvana'ya mı gidiyor?

Teşekkürler!


Çıkmadan önce bir günlüğü otomatik olarak kaydetmek için exit komutunu ele geçirebilirsiniz: doskey exit=doskey /history ^>^> C:\path\to\cmdhistory.log $T exit $*ancak her komut istemi oturumu başlangıcında bunun otomatik olarak nasıl yürütüleceğini bulmanız gerekir. Not: Günlük dosyasının yolunun yazılabilir olduğundan emin olun. C:\ yönetici olmayan bir komut istemi için yazılabilir değil.
ADTC

@ADTC: AutoRun 'her açılışta' işlem yapmalıdır: superuser.com/a/302553/333316 veya stackoverflow.com/a/17405182/2868801
dave_thompson_085 3:18

Yanıtlar:


29

Hayır, bir oturum sona erdiğinde, Windows komut istemi geçmişi kaydedilemiyor.


3
gerçek mi? Bunu nasıl biliyorsun? Seni sorguladığım için üzgünüm, sanırım haklısın ama lanet şeyi programlamadığın nasıl bilebilirsin;)
raoulsson

7
Tamam, tekrar ifade etmeme izin verin :-) Windows komut yorumlayıcısı ("cmd.exe"), öyküyü kaydetme / dışa aktarma / saklama konusunda herhangi bir destek sağlamıyor, eğer öyleyse, Microsoft belgelenmedi ve hiç kimse yapamadı onu bulmak için. Tabii ki, Sean'ın önerdiği gibi, bunun üzerinde çalışmayı deneyebilirsiniz, ancak bunun için yerleşik bir destek yoktur (veya görünmektedir).
Massimo

18
Geçerli oturumun geçmiş listesini görmek için F7 tuşuna basabilirsiniz.
jftuga

4
CURRENT oturumu burada anahtar kelimedir.
Massimo

3
Çalıştırarak geçmişi görebilir / kaydedebilirsiniz doskey.exe /history(aynı zamanda F7 kısayolunun BTW'den geldiği yer) ancak bir sonraki oturumunuzda yeniden yüklemenin bir yolu yoktur.
Coderer

68

Yerel değil, ancak göz atın: http://mridgers.github.io/clink/ , cmd.exe dosyasını çok daha üretken kılar. Proje sayfasındaki özelliklerden alıntı:

Powerful Bash-like line editing from GNU's Readline library.
Superior path completion (TAB).
Paste from clipboard (Ctrl-V).
Support for the completion of executables/commands, and environment variables.
Undo/Redo (Ctrl-_ or Ctrl-X, Ctrl-U)
Improved command line history.
Persists across sessions.
Searchable (Ctrl-R and Ctrl-S).
History expansion (e.g. !!, !<string>, and !$).
Scriptable completion using Lua.


5
Varsayılan olarak Windows’a eklemeyi planlıyor musunuz? : D
Jaime Hablutzel 01.01.2015

~/.inputrcClink kullanırken bir tane ayarlayabilir misiniz ? (ve Konsolun veya başka bir şeyin kullanılıp kullanılmayacağını biliyor musunuz?)
Mike HR


... diğer adlar hariç. clinknefretler doskey; Yıllarca süren ve dikkatlice atanmış diğer adlarınızı unutun. bu yüzden kullanmayı bıraktım. Yine de tüm özellikleri özlüyorum.

15

Massimo, komut istemi geçmişinizin oturumlar arasında sürmeyeceği doğru. Bunu isteminizi kapatmadan önce doskey / history> history.txt yazarak el ile alabilirsiniz.

Veya ... PowerShell'i CMD isteminiz olarak kullanabilir ve geçmişinizi oturumlarda sürdürmek için bu gönderiyi takip edebilirsiniz.


11

Clink kullanabilirsiniz .

Clink, yerel Windows shell cmd.exe dosyasını, zengin tamamlama, geçmiş ve satır düzenleme yetenekleri sağlayan GNU Readline kütüphanesinin güçlü komut satırı düzenleme özellikleriyle birleştirir.

Clink'i kurmanın en kolay yolu çikolata kullanıyor . Chocolatey'i yükledikten sonra, yazarak clink'i

choco install clink

Cmd.exe dosyasını bir sonraki başlatışınızdan başlayarak, oturumlar arasında geçmişi depolamalıdır.


Sonunda Chocolateybu yazı nedeniyle bir atış yapmaya karar verdi . Kurulum, brewmacOS'ta olduğu kadar kolaydı . Ve şimdi Windows'ta Bash benzeri bir komut istemim var!
TranslucentCloud

6

Geçerli geçmişi dosyaya kaydetmek mümkündür.

`$ doskey /history > somefile.txt`

Ancak tarih olarak geri yüklemenin bir yolu yok gibi görünüyor. Tüm satırları yüklemek ve yürütmek için sadece bir komut satırı argümanı kullanmak mümkündür.

cmd.exe /K somefile.txt

, bir doskey makro listesi yüklemek için yararlı olabilir. Bu çağrı bir kısayola dahil edilebilir, böylece her zaman yazmanıza gerek kalmaz; bu referans, bu yaklaşım hakkında bazı ek bilgilere sahiptir .

Superuser'de, @RobertBak'ın önerdiği gibi , clink dahil bazı alternatifler getiren benzer bir soru var .


Hmm, tekrar tarihe yüklemek için, sadece bir .bat dosyasına kaydetmeniz ve çalıştırmanız gerekmez mi?
Pacerier

1
@Pacerier komutları tekrar çalıştırırsa kesinlikle onları tarihe geri dahil ederdi, ancak büyük olasılıkla büyük yan etkileri olurdu. Bazı dosyaları kabuktan sildiğinizi ve daha sonra bunları uzun ve acı verici bir işlemle kabuk dışında yeniden yarattığınızı hayal edin. Geçmişi işleminiz üzerinden yeniden yüklemek, dosyaları beklenmedik bir şekilde tekrar siler.
mMontu

@Pacerier, "çalıştır" demiştin, tüm bu komutları çalıştırmak demek değil mi? Bu sadece onları tarihe yüklemekle kalmıyor, aynı zamanda sisteminizde bazı etkileri olmasını sağlıyor.
ADTC


1

tıkırtı güzel ve yazar her sürümünde bir çikolata paketi yayınlar, ancak DeepBlueCLI'yi öneririm.

Windows Güvenlik Olay Kimliği 4688'i kurmak için https://github.com/sans-blue-team/DeepBlueCLI kullanabilirsiniz .

PowerShell için DeepBlueCLI ayrıca modül günlüğünü (PowerShell olayı 4013) ve komut dosyası bloğu günlüğünü (4104) kullanır. Transkripsiyon kullanmaz.

Eklenen yarar, AppLocker olay günlüğüne exe komut satırının karma değerini günlüğe kaydetmesidir. Kaynak: https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/manage/component-updates/command-line-process-auditing

Ayrıca, bu çözüm Windows Olay Günlüğü altyapısını kullandığından, WMI veya PowerShell aracılığıyla sorgulayabilirsiniz Get-EventLog. Clink ile, sistem veya ağ genelinde davranış modellerini tespit etmek için başka bir araç öğrenmeniz gerekir.


1
olay 4688 anahtardır ve bu, Windows'un tüm yürütülen komutları kaydetme biçimindeki ana depodır. diğer tüm araçlar sadece bu olayı aramayı okuyor. Teşekkürler. Ama varsayılan olarak etkin değil: itprotoday.com/strategy/…
Peter Teoh
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.