Vbscript Vbs脚本读取具有文件名的txt文件,然后搜索是否存在taht文件并移动另一个文件
我发现这个代码:Vbscript Vbs脚本读取具有文件名的txt文件,然后搜索是否存在taht文件并移动另一个文件,vbscript,Vbscript,我发现这个代码: Option Explicit ' .. Just coz. Const forReading = 1 ' Set our constants for later. Const forWriting = 2
Option Explicit ' .. Just coz.
Const forReading = 1 ' Set our constants for later.
Const forWriting = 2 ' ....
Dim inputFile, outputFile, fso, fileList, logFile, fileSpec ' Dimension our variables
inputFile = "filelist.txt" ' Our input file
outputFile = "missing.txt" ' Our output file
Set fso = CreateObject("Scripting.FileSystemObject") ' Set up fso
Set fileList = fso.OpenTextFile(inputFile, forReading) ' Open our input file for reading
If Not (fso.FileExists(outputFile)) Then fso.CreateTextFile(outputfile) ' Create output file if it doesn't exist
Set logFile = fso.OpenTextFile(outputFile, forWriting) ' Open up our output file for writing later
Do while not fileList.AtEndOfStream ' While we have lines to process do this loop
fileSpec = fileList.ReadLine() ' Read in line of text as variable fileSpec
If Not (fso.FileExists(fileSpec)) Then ' If it doesnt exist ....
logFile.writeline (fileSpec) ' ....Write it out to the output file
End If
Loop
fileList.close ' Clean up
logFile.close
这是对代码的解释
我还需要一件事。我需要将额外的文件从默认目录(它们不是写在filelist.txt中)移动到新目录中。在默认目录中,我只需要在filelist.txt中写入的文件。我不完全理解那个代码。我曾尝试重新编写该代码,但每次都失败。设置问题(联合、差异等)可以用VBScript解决
您有两组文件名,一组来自源文件(SetF),一组来自默认目录(SetD)中的文件。在现有的SetF循环中,将名称存储在字典(DicF)中。然后在SetD(DefFolder.Files)上添加一个循环,并移动DicF中不存在的文件-如中所示:
>> SetF = Split("A D F G")
>> SetD = Split("B D G H")
>> Set DicF = CreateObject("Scripting.Dictionary")
>> For Each f in SetF
>> DicF(f) = 0
>> Next
>> For Each f In SetD
>> If Not DicF.Exists(f) Then
>> WScript.Echo f
>> End If
>> Next
>>
B
H
(参见)