डॉस कमांड लाइन्स पिछले महीने के नाम वाले फोल्डर में फाइल ले जाएँ


1

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

मेरे द्वारा उपयोग किए जा रहे दिनांक पैरामीटर "% DATE: ~ 0,2%" मैंने "DATE: ~ 0,2% -1" और "% DATE: ~ 0,2% -1" आज़माए हैं और इसमें पूर्ण पाठ बैच फ़ाइल "चाल है [-Y] * .pdf P: \ CBO \ Physician मासिक रिपोर्ट \% DATE: ~ 6,4% -% DATE: ~ 0,2% -1"


1
डॉस में टास्क शेड्यूलर नहीं है। केवल विंडोज करता है।
गोरैया

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

@ThaddeusTG: ग्रेविटी सही है। डॉस के पास atकमांड नहीं है , लेकिन विंडोज करता है। डॉस एक ऑपरेटिंग सिस्टम है जो विंडोज से अलग है, और जो बाद में चलने के लिए किसी कार्य को शेड्यूल करने में असमर्थ है। विंडोज की कमांड लाइन अभी भी विंडोज है, डॉस नहीं।
गिल्स

1
लोग समय के अंत तक विंडोज के कमांड प्रॉम्प्ट "डॉस" को जारी रखेंगे। लोग अभी भी मेम्फिस-अर्कांसस ब्रिज को "नया पुल" कहते हैं, भले ही यह लगभग 40 साल पुराना है।
डेनिस विलियमसन

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

जवाबों:


1

आपके चरित्र चयन के लिए आवश्यक है कि आपका दिनांक प्रारूप "MM-DD-YYYY" जैसा लगे। यह आदेश वर्तमान महीने की संख्या को पुनः प्राप्त करता है और एक को घटाता है और इसे एक चर में बचाता है जिसे कहा जाता है prevmonth। यदि पिछला महीना दिसंबर है, तो यह वर्ष से एक घटा देता है:

set /a prevmonth=%DATE:~0,2% - 1
set yearprevmo=%DATE:~6,4%
if %prevmonth% equ 0 set /a yearprevmo=%yearprevmo%-1 & set prevmonth=12
move -Y *.pdf "P:\CBO\Physician Monthly Reports\%yearprevmo%-%prevmonth%"

आपके निर्देशिका नाम में रिक्त स्थान होने के बाद से उद्धरणों पर ध्यान दें।


जनवरी में चल रहा है बस सावधान रहना होगा होगा
यादृच्छिक

@ आयामी: क्यों? उसे ifसमायोजित करना चाहिए।
डेनिस विलियमसन

आपकी प्रतिक्रिया के लिए धन्यवाद, मैंने देखा है कि वेब पर बहुत कुछ है, लेकिन वे अलग-अलग तारीखों के स्वरूपों में उपलब्ध हैं, इसलिए मुझे यकीन नहीं था कि मुझे उस प्रारूप में कैसे डाला जाए जो मुझे चाहिए। यदि आप जनवरी में चलने के मुद्दे को समायोजित करना चाहिए तो आप सही हैं।
थादेसुसजी

1
C:\>move /Y \\your Network server\PROD\PM\FileArchive\2011*.txt \\your Network server\PROD\PM\FileArchive\Documents
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.