use*_*702 2 arrays vbscript type-mismatch fso
我是VB脚本的新手,我试图找到一种方法:
根据我的研究,似乎一个好的方法是使用FSO并读取整个文本文件,创建一个数组,然后循环检查文件是否存在于目录中,然后记录到"missing.txt",如果它没有.
但是,这样做,不会出现类型不匹配,因为.txt中的文件名是一个字符串,目录中的文件本身就是对象吗?
我该如何比较?我可以从概念上理解这一点,但我不知道从哪里开始使用语法.
谢谢您的帮助.
正如你所说的,你是vbscript的新手,而你似乎是Stack Overflow的新手,我想我会尝试为你提供一些帮助.
您不必将整个文件存储为数组.您需要做的就是逐行处理输入文件作为文本:检查每行文本是否作为文件名存在.
让我们假设我们的示例有以下细节:
file1.txt
file2.txt
file3.txt
file7.txt
Run Code Online (Sandbox Code Playgroud)
Directory of C:\lazy-code-handed-over-on-silver-plate\files
06/06/6666 06:66 PM <DIR> .
06/06/6666 06:66 PM <DIR> ..
06/06/6666 06:66 PM 666 file1.txt
06/06/6666 06:66 PM 666 file2.txt
06/06/6666 06:66 PM 666 file4.txt
06/06/6666 06:66 PM 666 file5.txt
4 File(s) 2664 bytes
2 Dir(s) 6,666,666,666,666 bytes free
Run Code Online (Sandbox Code Playgroud)
该filelist.txt文件包含file1.txt file2.txt file3.txt file7.txt.
该目录不包含file3.txt或file7.txt.
基于这些参数,我们对此脚本的预期输出如下:
file3.txt
file7.txt
Run Code Online (Sandbox Code Playgroud)
这是一个帮助您实现此目的的脚本(我在每个相关行的最右侧添加了注释):
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 ' ..
Run Code Online (Sandbox Code Playgroud)
我希望这可以帮助你.祝你今天愉快.:)