मूल फ़ोल्डर संरचना को बनाए रखते हुए फ़ाइलों की प्रतिलिपि कैसे करें?


2

मुझे आश्चर्य है कि अगर मैं निम्नलिखित करने में मदद कर सकता हूं:

पीसी (सभी इकाइयों) सभी ऑटोकैड फ़ाइलों (*। डीडब्ल्यूजी) और शब्द (*। डॉक) को खोजें और उन्हें मेरे सर्वर से एक नए मार्ग पर कॉपी करें; पहली बार इसे चलाने के लिए एक पूर्ण होना चाहिए और फिर बस पूर्ण फ़ाइलों की तिथि को कॉपी किया जाता है।

मैंने निम्नलिखित का उपयोग करने की कोशिश की है:

mkdir \\server1\j$\bk_user\%computername%\FULL\%date:~6,4%-%date:~3,2%-%date:~0,2%\a_ofim\

FORFILES /P C:\ /S /M *.doc* /C "cmd /c COPY @file \\server1\j$\bk_user\%computername%\FULL\%date:~6,4%-%date:~3,2%-%date:~0,2%\a_ofima\"

FORFILES /P C:\ /S /M *.dwg /C "cmd /c COPY @file \\server1\j$\bk_user\%computername%\FULL\%date:~6,4%-%date:~3,2%-%date:~0,2%\a_ofim\"

मुद्दा यह है कि मैं नहीं जानता कि कैसे:

  1. सभी हार्ड ड्राइव खोजें, मेरा वर्तमान कोड केवल ड्राइव सी खोजता है: (मैं "अगर डी मौजूद है: \ goto diskD" और इसलिए प्रत्येक डिस्क के लिए एक पंक्ति रखने के बारे में सोच रहा था, लेकिन मुझे यकीन नहीं है कि कोई और अधिक कुशलता से है

  2. हर बार जब आप फ़ाइल ढूंढते हैं और उसे कॉपी करते हैं, तो उसकी मूल फ़ोल्डर संरचना को बनाए रखते हुए उसे कॉपी करें, क्योंकि तब कोई नहीं जानता कि यह उस फ़ाइल में कहां से आया है क्योंकि सभी जगह एक साथ हैं।

मुझे आशा है आप मेरी मदद कर सकते हैं ..

जवाबों:


0

मैं सभी हार्ड ड्राइव कैसे खोज सकता हूं?

अपने सभी स्थानीय ड्राइवों की गणना करने के लिए, निम्न बैच फ़ाइल (GetDrives.cmd) का उपयोग करें:

@echo off
setlocal enabledelayedexpansion
for /f "skip=1" %%d in ('wmic logicaldisk get caption ^| findstr /r /v "^$"') do (
  set _drive=%%d
  echo !_drive!
  rem add search code here
  )
endlocal

उदाहरण आउटपुट:

> GetDrives.cmd
C:
add search code here
D:
add search code here
E:
add search code here
F:
add search code here

डीवीडी / सीडी ड्राइव को छोड़ने के लिए, निम्न बैच फ़ाइल (GetDrives.cmd) का उपयोग करें:

@echo off
setlocal enabledelayedexpansion
for /f "skip=1 tokens=1,2" %%d in ('wmic logicaldisk get caption^, drivetype  ^| findstr /r /v "^$"') do (
  if not [%%e]==[5] (
    set _drive=%%d
    echo !_drive!
    echo add search code here
    )
  )
endlocal

उदाहरण आउटपुट (ड्राइव डी: मेरी डीवीडी ड्राइव है):

> GetDrives.cmd
C:
add search code here
E:
add search code here
F:
add search code here

>

आगे की पढाई


धन्यवाद!! यह कोड अगर यह बहुत उपयोगी है, लेकिन मेरे पास एक सवाल है ... मैं नेटवर्क ड्राइव कैसे रिकॉर्ड या पता नहीं लगा सकता हूं? क्योंकि मैं सिर्फ स्थानीय डिस्क में दिखना चाहता हूं ...
एनरिक ओलया

यूरेका !! @echo offlocal enableelayedexpansion for / f "Skip = 1 tokens = 1,2" %% d के लिए ('wmic तार्किकdisk को कैप्शन ^, ड्राइवटाइप ^ | findstr / r / v "^ $' ') करते हैं (यदि नहीं [%] % e] == [४] (यदि नहीं [%% e] == [५] (सेट _drive =% d echo! _drive! इको ऐड सर्च कोड यहाँ)) एंडलोकल
एनरिक

1

सबसे अच्छा तरीका है कि मैंने फ़ोल्डर संरचना को बनाए रखते हुए उस तरह के डेटा को स्थानांतरित करना पाया है वह रोबोकॉपी के माध्यम से है।

रोबोकॉपी के साथ आप अपने स्थानांतरण को गति देने में मदद करने के लिए बहु सूत्रण समर्थन का उपयोग कर सकते हैं।

उदाहरण: Robocopy C: \ * .dwg \\ myserver \ backup \ users_C_Drive / MT: 4

वह फ़ोल्डर संरचना रखेगा। आप बाद में फैंसी प्राप्त कर सकते हैं और अस्थायी फ़ाइलों और फ़ोल्डरों को छोड़ देने के लिए कस्टम बहिष्कृत जोड़ सकते हैं।


0

यदि आप एक सटीक डुप्लिकेट बनाना चाहते हैं, तो निम्नलिखित संस्करण का उपयोग करें (जो जोड़ने / ई और / के बराबर है):

robocopy c:\test d:\test /MIR

यदि आप सभी करना चाहते हैं खाली और उपयोग सहित निर्देशिका और उपनिर्देशिका की प्रतिलिपि बनाएँ

robocopy c:\test d:\test /E

यह ई विकल्प पर बैकस्लैश है जो आपको मिल रहा था।

रोबोकॉपी के बारे में अधिक जानने के लिए यहाँ एक आसान खोज है:

http://www.google.com?q=robocopy+syntax

रोबोकॉपी में मेरी पोस्ट से - निर्देशिका को एक और निर्देशिका में कॉपी करें

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