निर्दिष्ट फ़ाइलों को हटाएँ और CMD में सभी आउटपुट लॉग करें


2

मैं एक स्कूल मैं काम कर रहा हूँ स्वचालित रूप से ड्राइव के रूप में एक फ़ोल्डर माउंट करने के लिए एक स्क्रिप्ट लिखा है X:और उसके बाद ड्राइव में जाने के लिए Xऔर रिकर्सिवली सभी फ़ोल्डर और सब फ़ोल्डर स्कैन .bat, .cmd, .exeऔर .vbsफ़ाइलों और उन्हें हटा दें। स्क्रिप्ट लगभग पूरी तरह से काम करती है। मेरी समस्या यह है कि यदि कोई त्रुटि है (उदाहरण के लिए, एक ड्राइव पथ बहुत लंबा है), तो वह इसे एक पाठ फ़ाइल में लॉग नहीं करेगा। वहाँ किसी भी तरह से यह एक बैच फ़ाइल के साथ किया जा सकता है?

@echo off
net use X: \\NETWORK PATH HERE
X:
cls
Echo Deleting bat files please wait...
del /s *.bat > DeletedFiles.txt
Echo Deleting CMD files please wait...
del /s *.cmd >> DeletedFiles.txt
Echo Deleting VBS files please wait...
del /s *.vbs >> DeletedFiles.txt
Echo Deleting Executable files please wait...
del /s *.exe >> DeletedFiles.txt
Echo Process Completed
set /p=Press Any Key To Close

वर्तमान में मुझे सीएमडी विंडो से (मैन्युअल रूप से) किसी भी त्रुटि को पढ़ना है और उसका हल निकालना है। रिकॉर्ड रखने के प्रयोजनों के लिए सभी त्रुटियों और हटाए गए फ़ाइलों को पाठ फ़ाइल में सहेजना आसान होगा।

इसके अलावा PowerShell प्रश्न से बाहर है; एक सिस्टम एडमिन होने के बावजूद, शिक्षा विभाग मुझे PowerShell या VBS स्क्रिप्ट चलाने के अधिकार नहीं देगा।


1

@BrianAdkins आपको उत्तर के रूप में पोस्ट करना चाहिए। ठीक यही मैं जवाब देने जा रहा था, लेकिन आप इसे पहले समझ गए। यह वही करेगा जो ओपी की तलाश में है।
Twisty अभिनय

जवाबों:



1

आउटपुट लॉग के साथ वैकल्पिक हटाएं:

robocopy [empty folder] [path of file] [file to delete or wildcards] /purge

उपयोग / l का परीक्षण करने के लिए:

robocopy [empty folder] [path of file] [file to delete or wildcards] /purge /l

असली नमूना:

C:\TEMP>dir /b

FILE_to_DELETE.txt

C:\TEMP>robocopy C:\EMPTY %cd% FILE_to_DELETE.txt /purge /l
-------------------------------------------------------------------------------    ROBOCOPY     ::     Robust File Copy for Windows
-------------------------------------------------------------------------------
Started: quinta-feira, 10 de dezembro de 2015 13:42:34
Source: C:\EMPTY\
Dest: C:\TEMP\
Files: FILE_to_DELETE.txt
Options: /L /DCOPY:DA /COPY:DAT /PURGE /R:1000000 /W:30
------------------------------------------------------------------------------
           0    C:\EMPTY\
          *EXTRA File                  0        FILE_to_DELETE.txt

------------------------------------------------------------------------------
        Total    Copied   Skipped  Mismatch    FAILED    Extras
        Dirs :         1         0         0         0         0         0     Files :         0         0         0         0         0      
    1    Bytes :         0         0         0         0         0      
    0    Times :   0:00:00   0:00:00                       0:00:00  
    0:00:00    Ended : quinta-feira, 10 de dezembro de 2015 13:42:34


C:\TEMP>robocopy C:\EMPTY %cd% FILE_to_DELETE.txt /purge

-------------------------------------------------------------------------------
ROBOCOPY     ::     Robust File Copy for Windows   
-------------------------------------------------------------------------------

      Started : quinta-feira, 10 de dezembro de 2015 13:42:41    Source
    : C:\EMPTY\
         Dest : C:\TEMP\

        Files : FILE_to_DELETE.txt

      Options : /DCOPY:DA /COPY:DAT /PURGE /R:1000000 /W:30
-----------------------------------------------------------------------------
              0    C:\EMPTY\
              *EXTRA File                  0        FILE_to_DELETE.txt
------------------------------------------------------------------------------
       Total    Copied   Skipped  Mismatch    FAILED    Extras
        Dirs :         1         0         0         0         0         0    Files :         0         0         0         0         0      
    1    Bytes :         0         0         0         0         0      
    0    Times :   0:00:00   0:00:00                       0:00:00  
    0:00:00    Ended : quinta-feira, 10 de dezembro de 2015 13:42:41

C:\TEMP>dir /b

C:\TEMP>

1

ऐसा नहीं लगता कि आपने कंप्यूटर को लॉग फ़ाइल लिखने के लिए कोड में कुछ भी लिखा है। क्या यह स्क्रिप्ट अपनी संपूर्णता में है, या सिर्फ वह टुकड़ा है जिस पर आप काम कर रहे हैं? यह मेरा मुख्य क्षेत्र नहीं है, लेकिन मैं कंप्यूटर को क्या करना है, यह बताने के लिए "if" या "ElseIf" कथन देखने की अपेक्षा करूंगा। मैं भाषा बना रहा हूं लेकिन यहां सामान्य विचार है।

IF File cannot be deleted (Return Code X)
THEN Output Return Code + Filename to Logfile.txt

यह अपनी संपूर्णता में कोड है। मैंने सोचा होगा कि कमांड के चलने के बाद कोई भी आउटपुट चाहे वह एरर हो या डिलीट करने में सफल हो। मैं अनिश्चित हूं कि मैं त्रुटि को लॉग करने के लिए "if" या "elseif" कथन कैसे लिखूंगा। समस्या यह है कि छात्रों को फ़ोल्डर्स के भीतर फ़ोल्डर आदि में फ़ोल्डर डालना पसंद है; इतने cmd किसी भी फाइल को नष्ट नहीं कर सकते हैं जो फ़ाइल संरचना के भीतर काफी गहरी हैं (कुल मिलाकर 256 अक्षरों में से कुछ भी निश्चित है। \\ छात्र \ file1 \ file2 \ file3 \ file4 (अधिक फ़ोल्डर जो पिछले पथ नाम में 256 वर्णों तक अधिक फ़ोल्डर हैं) ) \ script.bat)
सुपर ज्यॉफ

0

अपनी बैट फ़ाइल से आपको एक फ़ाइल "DeletedFiles.txt" मिल जाएगी जिसमें सभी हटाई गई फ़ाइलों की सूची होगी। यदि आप चाहते हैं कि एक बैट फ़ाइल को निष्पादित करते समय सभी पाठ उत्पन्न हों, तो आप निम्न कमांड का उपयोग कर सकते हैं: $ mybatfile.bat> mylogfile.txt 2> & 1 जहाँ mybatfile.bat वह बैट फ़ाइल है जिसे निष्पादित करना चाहते हैं, mylogfile.txt है फ़ाइल का नाम जिसमें आउटपुट प्रॉम्प्ट कमांड प्रॉम्प्ट ( जिसमें सभी त्रुटियां होंगी ) को संग्रहीत किया जाता है जो बैट फ़ाइल को निष्पादित करता है।

आप सभी निर्देशिकाओं और उप निर्देशिकाओं में पुनरावृत्ति के साथ वास्तव में उन्हें हटाकर सभी * .c फ़ाइलों को आउटपुट करने के लिए कमांड $ dir / s / b * .c का भी उपयोग कर सकते हैं। इसे लॉग करने के लिए आप $ dir / s / b * .c> listofcfiles.txt का उपयोग कर सकते हैं


(१) आपका पहला पैराग्राफ स्वीकृत उत्तर की रिहाइश से थोड़ा अधिक है। PS $विंडोज सीएमडी के साथ क्या करना है? (२) आप *.cफाइल के बारे में क्यों बात कर रहे हैं ? *.cफ़ाइलों के बारे में सवाल में कुछ भी नहीं है ।
जी-मैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.