क्या एक वैश्विक, लगातार सीएमडी इतिहास है?


99

कभी-कभी मैं भूल जाता हूं कि एक सीएमडी कमांड का सटीक सिंटैक्स कैसा दिखता है और फिर मैं अपना सीएमडी इतिहास खोजना चाहता हूं। जाहिर है, एक ही सत्र के भीतर, आप इसे ऊपर और नीचे तीर कुंजियों के साथ ब्राउज़ कर सकते हैं लेकिन पूर्व सीएमडी सत्रों के इतिहास के बारे में क्या? क्या कोई फाइल है, एक लॉग इतिहास लिखा जाता है या यह सब डिजिटल निर्वाण में जाता है?

धन्यवाद!


बाहर निकलने से पहले किसी लॉग को स्वचालित रूप से सहेजने के लिए आप एक्जिट कमांड को हाईजैक कर सकते हैं: doskey exit=doskey /history ^>^> C:\path\to\cmdhistory.log $T exit $*लेकिन आपको यह पता लगाना होगा कि प्रत्येक कमांड प्रॉम्प्ट सेशन स्टार्टअप पर यह स्वचालित रूप से कैसे निष्पादित किया जाए। पुनश्च: सुनिश्चित करें कि लॉग फ़ाइल का पथ लेखन योग्य है। C:\ गैर-व्यवस्थापक कमांड प्रॉम्प्ट के लिए लिखने योग्य नहीं है।
ADTC

@ADTC: ऑटोरन को 'प्रत्येक स्टार्टअप' को संभालना चाहिए: superuser.com/a/302553/333316 या stackoverflow.com/a/17405182/2868801
dave_thompson_085

जवाबों:


29

नहीं, सत्र समाप्त होने पर Windows कमांड प्रॉम्प्ट इतिहास को सहेजा नहीं जा सकता।


3
सच में? तुम यह कैसे जानते हो? आपसे प्रश्न करने के लिए क्षमा करें, मुझे लगता है कि आप सही हैं लेकिन आप कैसे जान सकते हैं जब तक कि यू ने लानत की बात नहीं की है;)
raoulsson

7
ठीक है, मुझे rephrase :-) आइए, विंडोज कमांड दुभाषिया ("cmd.exe") इतिहास को बचाने / निर्यात / रखने के लिए कोई समर्थन प्रदान नहीं करता है, अगर यह करता है, तो Microsoft ने इसे दस्तावेज़ नहीं किया और कोई भी कभी भी सक्षम नहीं था। इसे खोजने के लिए। आप निश्चित रूप से इसके चारों ओर काम करने की कोशिश कर सकते हैं, जैसे सीन ने सुझाव दिया, लेकिन इसके लिए (या प्रतीत होता है) कोई अंतर्निहित समर्थन नहीं है।
मैसिमो

18
आप वर्तमान सत्र की इतिहास सूची देखने के लिए F7 दबा सकते हैं।
jftuga

4
CURRENT सत्र यहाँ खोजशब्द है।
मैसिमो

3
आप इतिहास को चलाकर देख सकते हैं / सहेज सकते हैं doskey.exe /history(यह भी जहां F7 ​​शॉर्टकट बीटीडब्ल्यू से आता है) है, लेकिन आपके अगले सत्र में इसे वापस लोड करने का कोई तरीका नहीं है।
कोडर

68

मूल रूप से नहीं, लेकिन बाहर की जाँच करें: http://mridgers.github.io/clink/ , cmd.exe को अधिक उत्पादक बनाता है। प्रोजेक्ट पृष्ठ से उद्धरण विशेषताएँ:

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
विंडोज में इसे डिफ़ॉल्ट रूप से शामिल करने की कोई योजना है? : D
Jaime Hablutzel

क्या आप ~/.inputrcक्लिंक का उपयोग करते समय सेट कर सकते हैं ? (और क्या आप जानते हैं कि यह कंसोल या कुछ भी इस्तेमाल किया जा सकता है?)
माइक एचआर

जाहिरा तौर पर, डॉक्टर github.com/mridgers/clink/blob/master/docs/clink.md देखें ।
बारिस डेमीराय

... सिवाय उपनामों के। clinkनफरत करता है doskey; अपने सभी वर्षों के लंबे और सावधानी से असाइन किए गए उपनामों को भूल जाएं। इसलिए मैंने इसका इस्तेमाल करना बंद कर दिया है। हालांकि मैं सभी सुविधाओं को याद करता हूं।

15

मास्सिमो सही है कि आपका कमांड प्रॉम्प्ट इतिहास सत्रों में नहीं रहता है। आप doskey / history> history.txt टाइप करके अपने प्रॉम्प्ट को बंद करने से पहले इसे मैन्युअल रूप से पकड़ सकते हैं

या ... आप अपने CMD प्रॉम्प्ट के रूप में PowerShell का उपयोग कर सकते हैं , और सत्रों में अपना इतिहास बनाए रखने के लिए इस पोस्ट का अनुसरण कर सकते हैं ।


11

आप क्लिंक का उपयोग कर सकते हैं ।

क्लिंक देशी विंडोज शेल cmd.exe को GNU रीडलाइन लाइब्रेरी की शक्तिशाली कमांड लाइन संपादन सुविधाओं के साथ जोड़ती है, जो समृद्ध पूर्णता, इतिहास और लाइन-संपादन क्षमताओं को प्रदान करती है।

क्लिंक स्थापित करने का सबसे आसान तरीका चॉकलेट का उपयोग करना है । एक बार जब आप चॉकलेट को स्थापित करते हैं, तो आप टाइप करके क्लिंक स्थापित कर सकते हैं

choco install clink

अगली बार जब आप cmd.exe शुरू करते हैं, तो उसे सत्रों में इतिहास संग्रहित करना चाहिए।


अंत Chocolateyमें इस पोस्ट की वजह से एक शॉट देने का फैसला किया । brewMacOS में इंस्टालेशन उतना ही आसान था । और अब मेरे पास विंडोज में एक बैश जैसा कमांड प्रॉम्प्ट है!
ट्रांसलूसेंटक्लाउड

6

फाइल करने के लिए वर्तमान इतिहास को सहेजना संभव है,

`$ doskey /history > somefile.txt`

लेकिन ऐसा लगता है कि इसे इतिहास के रूप में वापस लोड करने का कोई तरीका नहीं है। सभी लाइनों को लोड और निष्पादित करने के लिए केवल कमांड लाइन तर्क का उपयोग करना संभव है,

cmd.exe /K somefile.txt

, डोसकी मैक्रोज़ की सूची को लोड करने के लिए क्या उपयोगी हो सकता है। इस आह्वान को एक शॉर्टकट में शामिल किया जा सकता है, इसलिए आपको इसे हर बार टाइप करने की आवश्यकता नहीं है; इस संदर्भ में इस दृष्टिकोण पर कुछ अतिरिक्त जानकारी है

एक ऐसी ही सवाल ही नहीं है सुपर उपयोगकर्ता पर कि सहित कुछ विकल्प, लाने झंकार , के रूप में @RobertBak ने सुझाव दिया।


हम्म, इसे इतिहास में वापस लोड करने के लिए, क्या आपको बस इसे .bat फ़ाइल में सहेजने और इसे चलाने की आवश्यकता नहीं होगी?
पचेरियर

1
@Pacerier कमांड्स को फिर से चलाने से निश्चित रूप से उन्हें इतिहास में वापस शामिल किया जाएगा, लेकिन इसकी संभावना बड़े दुष्प्रभाव होंगे। कल्पना करें कि आप शेल के माध्यम से कुछ फ़ाइलों को हटाते हैं और फिर उन्हें लंबी और दर्दनाक प्रक्रिया के माध्यम से शेल के बाहर फिर से बनाते हैं। अपनी प्रक्रिया के माध्यम से इतिहास को पुनः लोड करना अप्रत्याशित रूप से फ़ाइलों को फिर से हटा देगा।
mMontu

@Pacerier आपको लगता है कि "रन इट" का मतलब उन सभी कमांड को निष्पादित करना है, है ना? यह केवल उन्हें इतिहास में लोड नहीं कर रहा है, बल्कि वास्तव में उन्हें आपके सिस्टम पर कुछ प्रभाव डाल रहा है।
ADTC

1

कमांड हिस्ट्री: कमांड हिस्ट्री को सक्षम करने के लिए (जो कि अप और डाउन एरो कीज़ का उपयोग करके एक्सेस किया जा सकता है) बस कमांड प्रॉम्प्ट पर doskey निष्पादित करें। उदाहरण के लिए, 100 तत्वों का कमांड इतिहास बनाने के लिए:

doskey /listsize=100

रेफरी: https://users.cs.jmu.edu/bernstdh/web/common/help/ntshell.php


3
इस सवाल का जवाब बिल्कुल नहीं है ??
चॉपर 3

1
विंडोज 10. पर काम नहीं करता है
ट्रांसलूसेंटक्लाउड

1

क्लिंक अच्छा है और लेखक हर रिलीज पर एक चॉकलेट पैकेज प्रकाशित करता है, हालांकि मैं डीपब्लूसीएलआई का सुझाव दूंगा।

आप Windows सुरक्षा इवेंट ID 4688 को सेट-अप करने के लिए https://github.com/sans-blue-team/DeepBlueCLI का उपयोग कर सकते हैं ।

PowerShell के लिए, DeepBlueCLI मॉड्यूल लॉगिंग (PowerShell इवेंट 4013) और स्क्रिप्ट ब्लॉक लॉगिंग (4104) का भी उपयोग करता है। यह प्रतिलेखन का उपयोग नहीं करता है।

अतिरिक्त लाभ यह है कि यह AppLocker ईवेंट लॉग में कमांड लाइन exe का हैश लॉग करता है। स्रोत: https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/manage/component-updates/command-line-process-auditing

इसके अलावा, क्योंकि यह समाधान विंडोज इवेंट लॉग इंफ्रास्ट्रक्चर का उपयोग करता है, आप इसे WMI या PowerShell के माध्यम से क्वेरी कर सकते हैं Get-EventLog। क्लिंक के साथ, आपको सिस्टम का पता लगाने के लिए एक और टूल सीखना होगा- या नेटवर्क-वाइड-बिहेवियर का पैटर्न।


1
ईवेंट 4688 कुंजी है, और यह केंद्रीय स्टोर है कि विंडोज सभी निष्पादित कमांड कैसे रिकॉर्ड करता है। अन्य सभी उपकरण इस घटना की तलाश में हैं। धन्यवाद। लेकिन डिफ़ॉल्ट रूप से यह सक्षम नहीं है: itprotoday.com/strategy/…
पीटर तेह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.