मैं उनके नाम के आधार पर फ़ाइलों को फ़ोल्डर में कैसे स्थानांतरित कर सकता हूं?


2

मेरे पास एक निश्चित फ़ोल्डर "एबीसी" में कई .pdf और .tex-files हैं।

इन सभी का नाम योजना द्वारा रखा गया है

C01S02_Word.pdf
C03S02SS01_Description_random_words.pdf
C04S01SS02_More_words.pdf
and so forth

इस योजना में सी , सेक्शन के लिए एस , सेक्शन के लिए एस और एसएस के लिए खड़ा है । इसलिए फ़ोल्डर एबीसी I में प्रत्येक अध्याय के लिए फ़ोल्डर भी है, बस नाम C01 , C02 और इसके बाद का है। प्रत्येक अध्याय फ़ोल्डर में मेरे पास चित्र नाम का एक फ़ोल्डर है ।

किसी एक बैच स्क्रिप्ट तो मैं उनके संबंधित सभी .tex और .pdf फ़ाइल को स्थानांतरित कर सकता है लिखने कृपया सकते हैं चित्र -folder, C04S01SS02_More_words.pdfमें ले जाया गया जायेगा C04/Picturesऔर C01S02_Word.pdfकरने के लिए C01/Picturesबहुत आगे है और?

नोट: निश्चित रूप से मैंने इसे पहले से ही देख लिया था लेकिन अभी तक मैं सभी बिट्स को एक कार्यशील स्क्रिप्ट में परिवर्तित करने में असमर्थ था। मैं अब T & E रन नहीं करना चाहता। : /

जवाबों:


2

इस बैच फ़ाइल बनाएँ:

@echo off
for %%F in (*.pdf *.tex) do call :subr "%%F"
exit /b

:subr
set filename=%1
move %1 %filename:~1,3%\Pictures
exit /b

टिप्पणियाँ:

  • for %%F in (*.pdf *.tex) do …प्रत्येक फ़ाइल नाम से मेल खाने वाले *.pdfया फ़ाइल नाम के *.texसाथ %%Fसेट करने के लिए निम्न कथन एक बार करता है ।
  • call :subr "%%F"पहले तर्क ( %1) के लिए "%%F"(फ़ाइल नाम, उद्धृत) के साथ, स्क्रिप्ट की निचली तीन पंक्तियों को आमंत्रित करता है ।
  • exit /b कमांड प्रॉम्प्ट विंडो को बंद किए बिना स्क्रिप्ट से बाहर निकलता है।
  • set filename=%1filenameचर में फ़ाइल नाम तर्क की प्रतिलिपि बनाता है ।
  • move एक फ़ाइल ले जाता है।
  • %variable:~start,len% के संकेतित विकल्प को लेता है (पहला वर्ण # 0 है), इसलिए पहले तीन वर्ण हैं । (गिनती 0 से शुरू होती है; मैं 1 का उपयोग कर रहा हूं ।%variable%%filename:~1,3%%filename%"
  • exit /b सबरूटीन से लौटता है।

आपके जवाब के लिए धन्यवाद। हम्म, क्या यह Picturesफ़ोल्डर के लिए खाता है ? क्या मुझे सिर्फ उसके लिए लिखना %filename:~0,3%/Picturesहै?
हेनरी

फॉर लूप काम नहीं करता है। यह केवल एक फाइल पर काम करता है।
हेनरी

मुझे लगता है कि इसे फ़ाइल नाम में रिक्त स्थान के साथ करना है। अगर मैं फ़ाइल नाम में रिक्त स्थान हटाता हूं, तो यह उक्त फ़ाइल के साथ काम करता है।
हेनरी

कहा जा रहा है, मैं यह पता नहीं लगा सकता कि delims=इस कोड का उपयोग कैसे किया जाए क्योंकि यह कोड स्निपेट उन सभी माताओं से अलग है जिन्हें मैंने नेट पर पाया था
henry

1
डी 'ओह! मैंने सवाल को गलत बताया। बदले %filename:~0,3%के लिए %filename:~0,3%\Pictures। और डीह फिर! आप को बदलने के द्वारा उन में रिक्ति के साथ फ़ाइल नाम संभाल कर सकते हैं %%Fकरने के लिए "%%F"और फिर बदल रहा है %filename:~0,3%\Picturesकरने के लिए %filename:~1,3%\Pictures। आप की जरूरत नहीं होनी चाहिए delims=
जी-मैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.