मैं विंडोज 7 में एक फ़ोल्डर को कैसे समतल कर सकता हूं, यह मानते हुए कि सभी फ़ाइल नाम अलग हैं?


18

उदाहरण के लिए, कहें कि मेरे पास निम्न फ़ोल्डर पदानुक्रम है:

Folder1
   File1
   Folder2
      File2
   Folder3
      File3
      Folder4
         File4

मैं कुछ कमांड करना चाहता हूं जिसके परिणाम:

Folder1
   File1
   File2
   File3
   File4

या ऐसा ही कुछ। मैं विंडोज से बहुत परिचित नहीं हूं, इसलिए मैं उत्तर में यथासंभव विस्तार की सराहना करूंगा।


क्या आप ऐसा करने के लिए किसी मौजूदा प्रोग्राम की तलाश कर रहे हैं, या कोई कोड (क्या प्रोग्रामिंग भाषा) ऐसा करता है?
Matt Ball

@MattBall: मैं यह करने का सबसे आसान तरीका तलाश रहा हूं। आदर्श रूप से, यह एक टर्मिनल खोल रहा होगा और कुछ कमांड इनपुट कर रहा होगा। फिर से, मैं विंडोज के साथ बहुत अनुभवी नहीं हूं, इसलिए कृपया मुझे बताएं कि क्या कोई बेहतर तरीका है। धन्यवाद।

जवाबों:


30

इसका सबसे आसान तरीका सामान्य रूट फ़ोल्डर में प्रवेश करना है और सभी फाइलों की खोज करना है (यानी * की खोज)। जब सभी फाइलें मिल जाएं, तो सभी फाइलों को चिह्नित करें, Ctrl + X दबाएं और फिर से सामान्य रूट फ़ोल्डर में नेविगेट करें। अब सभी फाइल को रूट फोल्डर में पेस्ट करने के लिए Ctrl + V दबाएं। समाप्त होने पर, सभी उपनिर्देशिकाएँ हटा दें।

मुझे नहीं पता कि क्या यह एक बैच की नौकरी के रूप में किया जा सकता है।


1
मुझे इसकी सरलता पसंद है, लेकिन मैंने इसे 40k फाइलों के साथ आज़माया और इसने एक्सप्लोरर प्रक्रिया को क्रैश कर दिया।
UpTheCreek

कुल कमांडर जवाब मुझे आसान लगता है।
Ev0oD

13

जब मुझे एक बड़ी पदानुक्रमित संरचना (मेरे मामले में pngs) में समतल करने की आवश्यकता हुई तो मैंने इस शक्तियुक्त दृष्टिकोण का उपयोग किया:

Get-ChildItem C:\sourcefolder -Recurse -Filter "*.png" | Copy-Item -destination C:\destinationfolder\

चपटेपन के लिए शायद मूव-आइटम बेहतर अनुकूल है?
geisterfurz007

4

विंडोज़ exe: http://en.sourceforge.jp/projects/sfnet_flatfolder/

या एएचके:

fileselectfolder,MyFold,::{20d04fe0-3aea-1069-a2d8-08002b30309d}
SetWorkingDir, %MyFold%
loop, *.*,0,1
{
  parentpath := RegExReplace(A_LoopFileDir,"\\","-")
  ;StringReplace, parentpath, A_LoopFileDir, \,-,All
  newname = %parentpath%-%A_LoopFileName%
  ;msgbox %newname%
  If a_loopfiledir <>
    filemove, %a_loopfilefullpath%,%newname%
}

loop, %myfold%\*.*,2,1
  fileremovedir, %a_loopfilefullpath%,1

exitapp

या उपयोग करें डायरेक्टरी ओपस

या शक्ति कोशिका

(ls -r -include *.jpg) | % { mv -literal $_ $_.Name.Insert(0, [String]::Format("{0} - ", $_.Directory.Name))}

या जत्था (जैसा कि ऊपर उल्लेख किया गया है)

या मैनुअल खोज, कट और पेस्ट जैसा कि ऊपर उल्लेख किया गया है

कई तरीके हैं, आपके कौशल और झुकाव के आधार पर आप इनमें से किसी को भी चुन सकते हैं, और अपनी आवश्यकताओं के अनुसार परिष्कृत कर सकते हैं।

आपको इसकी आवश्यकता हो सकती है खाली निर्देशिका निकालें उपरोक्त ऑपरेशन के बाद


1
powerhell कमांड छोटी और अच्छी है
Maxim Yefremov

3

यदि आपको केवल समय-समय पर मैन्युअल रूप से डीआर को समतल करना है, कुल कमांडर पूर्ण है।

कुल कमांडर में: अपने डॉ के पास जाओ तुम समतल करना चाहते हो। मेनू में क्लिक करें कमांड्स & gt; शाखा दृश्य । और आप यह देख रहे हैं कि यह सब चपटा है, आप इसे किसी अन्य फ़ोल्डर में स्थानांतरित / कॉपी कर सकते हैं।

यदि आपको फ़ाइल नाम के साथ थोड़ा छेड़छाड़ करने की आवश्यकता है: मेनू में जाने के लिए, चपटे दृश्य में सभी फ़ाइलों का चयन करें फ़ाइलें & gt; मल्टी-रिनेम टूल । यहां आप "Rename मास्क" का उपयोग करके वास्तविक फ़ाइलनामों के पथ से कुछ जानकारी जोड़ सकते हैं, आपको बस प्लगइन टैग / बटन का उपयोग करना होगा, खोज & amp; बदलें सुविधा और थोड़ा मूर्ख बटन, जो आपको पाठ संपादक में फ़ाइल नाम के लिए कुछ अंतिम संपादन करने देता है। जटिल लग सकता है, लेकिन वास्तव में सबसे आसान तरीका IMO :)


विंडोज कमांडर क्या है? क्या आप कुल कमांडर मतलब है?
UpTheCreek

बिल्कुल :) इसे 10 साल तक इस्तेमाल किया गया, नाम था विंडोज कमांडर वापस। संपादित किया गया
teejay

धन्यवाद। बस कोशिश की। हालांकि 40k छोटी फ़ाइलों के लिए काम नहीं करेगा :( 10 मिनट के लिए सीपीयू की एक बहुत खपत की तो दोहराया 'फ़ाइल फ़ाइल त्रुटियों को पैदा नहीं कर सका।
UpTheCreek

सीपीयू का उपयोग और निहित सुस्ती दुर्भाग्यपूर्ण है, लेकिन समझ में आता है :) त्रुटि कुछ और है .. बुरा नामकरण हो सकता है, कुल कमांडर बग या बस टीसी की अक्षमता यह कई फाइलें संभाल सकती है। मैं पहले फ़ाइलों की छोटी संख्या का नाम बदलने या टीसी के नए संस्करण का उपयोग करने की कोशिश करूंगा
teejay

@ अजय, मुझे आपके सुझाव के विवरण के लिए मछली पकड़नी थी, लेकिन मैं आखिरकार इसे बनाने में कामयाब रहा। मैंने रास्ते के कुछ हिस्सों को निकालने और उन्हें फ़ाइल नाम का उपसर्ग बनाने के लिए विस्तारक 2 प्लगइन का उपयोग किया। आप अगले आदमी के लिए कुछ विवरण जोड़ना चाह सकते हैं। टीएक्स।
killogre

3

सुपर तकनीकी रूप से इच्छुक लोगों के लिए कमांड-लाइन विकल्प के साथ बहुत सरल।

  1. "Flatten.cmd" नामक एक फ़ाइल बनाएँ
  2. उस फ़ाइल को नोटपैड में खोलें
  3. फ़ाइल में, निम्नलिखित को रखें:

    FOR /R {SourcePath} %%G IN (*.mp3) DO move "%%G" {Destination}
    
  4. "{SourcePath}" को उस फ़ोल्डर से बदलें, जिसे आप समतल करना चाहते हैं। आपके मामले में "c: \ Folder1"

  5. "{डेस्टिनेशन"} को उस फोल्डर से बदलें, जिसमें आप चाहते हैं कि फाइल को ले जाया जाए। आपके मामले में भी "c: \ Folder1"। कोड अब जैसा दिखना चाहिए:

    FOR /R c:\Folder1 %%G IN (*.mp3) DO move "%%G" c:\Folder1
    
  6. कमांड लाइन विंडो खोलें। इसे कई तरीके से कर सकते हैं, लेकिन यह तेज़ है:

    • स्टार्ट बटन पर क्लिक करें
    • सभी प्रोग्राम पर क्लिक करें
    • सामान पर क्लिक करें
    • कमांड प्रॉम्प्ट पर क्लिक करें
  7. कमांड लाइन विंडो में, टाइप करें:

    cd {folder where you put the flatten.cmd file}
    flatten
    

और वह यह करेगा (विंडोज 8+) मैंने सिर्फ 10,000 संगीत फ़ाइलों के एक फ़ोल्डर को समतल करने के लिए किया था। एक जादू की तरह काम करता है।

आप फ़ॉर कमांड-लाइन उपयोगिता के विकल्प खोज सकते हैं https://technet.microsoft.com/en-us/library/bb490909.aspx


1

बैच स्क्रिप्ट का उपयोग करना (मेरे सिर के ऊपर से):

ऊपर देखो आज्ञा के लिए

पहली पंक्ति उपनिर्देशिकाओं से सभी फाइलों को जड़ तक ले जाती है दूसरा उप फ़ोल्डर को हटा दें

for /f %f in ('dir "c:\folder\*" /s/b/a-d') do if not %~ff"=="c:\folder" move "%f" "c:\folder"
for /f %f in ('dir "c:\folder\*" /s/b/ad') do if not "%~ff"=="c:\folder" rd /s/q "%f" 

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

यदि आप इसे स्क्रिप्ट में हाँ नहीं लिखना चाहते हैं। OTOH .....
Preet Sangha

क्या इसे सामान्यीकृत किया जा सकता है और संदर्भ मेनू कार्रवाई में संलग्न किया जा सकता है? मुझे एक फ़ाइल पर राइट-क्लिक करने में सक्षम होना पसंद है, "फ़्लैटन फ़ाइल" पर क्लिक करें, फिर उसके भीतर की सभी फाइलें फ़ोल्डर के स्तर तक चली गईं। फ़ोल्डर को हटाने के बाद भी अच्छा होगा।
MAW74656

हाँ, यह इसे फ़ोल्डर नाम के रूप में% 1 के साथ एक बैच फ़ाइल में डाल सकता है। stackoverflow.com/questions/6162415/...
Preet Sangha

-आप इसके साथ मदद कर सकते हैं superuser.com/q/552768/59747
MAW74656

1

नमस्ते आप xxcopy (www.xxcopy.com) टूल का भी उपयोग कर सकते हैं, स्टेरॉयड पर xxcopy (सॉर्ट-ऑफ) है। इस टूल से आप फोल्डर में मौजूद फाइलों को एक फोल्डर में "समतल" कर सकते हैं।

ग: & gt; xxcopy / source-folder / flatten / SG

इस लिंक को पढ़ें: http://www.xxcopy.com/xxcopy16.htm

चीयर्स।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.