मैं फ़ाइलों को एक फ़ोल्डर से दूसरे फ़ोल्डर में कॉपी करना चाहता हूं जो वीबीएस का उपयोग करके एक विशिष्ट तिथि सीमा के बीच आता है।
उदाहरण के लिए मैं 06/11/2009 से 06/12/2010 तक फाइलों की प्रतिलिपि बनाना चाहता हूं। मैं इसे वीबी स्क्रिप्ट में कैसे कर सकता हूं।
2 जवाब
क्या डब्लूएमआई एक विकल्प है? अगर ऐसा है, तो यहां अरे, स्क्रिप्टिंग गाई! लेख मैं एक निर्दिष्ट तिथि से पुरानी सभी फाइलों को कैसे हटा सकता हूं?:
strComputer = "."
strFolder = "C:\FromFolder"
strNewFolder = "C:\ToFolder"
strDateFrom = "20090611000000.000000+00" ' 06/11/2009
strDateTo = "20100612000000.000000+00" ' 06/12/2010
Set oWMI = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colFiles = oWMI.ExecQuery _
("ASSOCIATORS OF {Win32_Directory.Name='" & strFolder & "'} WHERE " _
& "ResultClass = CIM_DataFile")
For Each oFile in colFiles
If oFile.CreationDate > strDateFrom And oFile.CreationDate < strDateTo Then
'WScript.Echo "Full path: " & oFile.Name
'WScript.Echo "Creation date: " & oFile.CreationDate
oFile.Copy strNewFolder & "\" & oFile.FileName & "." & oFile.Extension
oFile.Delete
End If
Next
यहां थोड़ा अलग प्रकार है जहां WMI क्वेरी में दिनांक जांच शामिल हैं:
strComputer = "."
strDateFrom = "20090611000000.000000+00" ' 06/11/2009
strDateTo = "20100612000000.000000+00" ' 06/12/2010
strNewFolder = "C:\ToFolder"
iFlags = 48
Set oWMI = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colFiles = oWMI.ExecQuery( _
"SELECT * FROM CIM_DataFile" & _
" WHERE Drive = 'C:' AND Path = '\\FromFolder\\'" & _
" AND CreationDate >= '" & strDateFrom & "'" & _
" AND CreationDate <= '" & strDateTo & "'" _
,,iFlags)
For Each oFile in colFiles
'WScript.Echo "Full path: " & oFile.Name
'WScript.Echo "Creation date: " & oFile.CreationDate
oFile.Copy strNewFolder & "\" & oFile.FileName & "." & oFile.Extension
oFile.Delete
Next
कुछ नोट्स:
- स्क्रिप्ट गैर-पुनरावर्ती है, अर्थात, यह केवल स्रोत फ़ोल्डर से ही फ़ाइलें ले जाती है, न कि इसके सबफ़ोल्डर्स।
- तिथियां यूटीसी प्रारूप में निर्दिष्ट हैं। इस प्रारूप के बारे में अधिक जानकारी मेरे द्वारा लिंक किए गए लेख में है।
- WMI में फ़ाइलों और फ़ोल्डरों को स्थानांतरित करने के तरीके शामिल नहीं हैं, इसलिए स्क्रिप्ट की प्रतिलिपियाँ तब फ़ाइलों को हटा देती हैं।
SWbemDateTime
ऑब्जेक्ट जैसा दिखाया गया है यहां, लेकिन मैं बहुत आलसी था इसे स्क्रिप्ट में जोड़ें - इसे ओपी तक रहने दें।
आप FileSystemObject
का उपयोग कर सकते हैं। फ़ाइल बनाने की तारीख निम्नलिखित मिलेगी:
Dim fso, myfile, d
Set fso = CreateObject("Scripting.FileSystemObject")
Set myfile = fso.GetFile("something.dat")
d = myfile.DateCreated
MsgBox d
अधिक पढ़ें यहां।
यहां इसका एक उदाहरण है कि कैसे करें किसी दिए गए फ़ोल्डर में फ़ाइलों के माध्यम से लूप। प्रत्येक फ़ाइल के लिए, आप तिथि की जांच कर सकते हैं, तय कर सकते हैं कि आपको यह पसंद है या नहीं, और यदि ऐसा है तो फ़ाइल की प्रतिलिपि बनाएँ।
संबंधित सवाल
नए सवाल
vbscript
VBScript (विजुअल बेसिक स्क्रिप्टिंग एडिशन) Microsoft द्वारा विकसित की गई एक स्क्रिप्टेड स्क्रिप्टिंग भाषा है जो Visual Basic पर मॉडलिंग की जाती है। VBScript VBA या VB.NET जैसी ही चीज नहीं है। वे तीन अलग-अलग चीजें हैं, इसलिए सही टैग का उपयोग करें।