Код для возврата списка имен файлов в папке и дополнительного возврата текста с 35-й по 40-ю позицию в первой строке каждого файла с использованием VBscript - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь написать скрипт, который будет читать все имена файлов в папке и выводить их список, а также одновременно читать прочитанный текст с 35-й по 45-ю из первой строки

Пример файла данных

 {1:XXXXXXXXXXXXXX0000000000}{2:XXXXXXXXXXXXXXXXX}
{4:
:20:XXXXXXXXXXX
:21:XXXXXXXXXXX

Мой код

 Dim objFileSystem,wshShell,MainPath,fileCount,fileLIst,FiletoRead, objFile,strline, Newfile


Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set NewFile = objFileSystem.CreateTextFile("c:\test\FileList.txt", True) 'Text file object
Set NewFile = objFileSystem.CreateTextFile("c:\test\FileList.txt", True) 'Text file object
MainPath="Path Location"


rem inputbox("Enter File Location here")
if objFileSystem.FolderExists(MainPath) then 
msgbox "control here 1"
FindFileRec MainPath
else
msgbox "Path " &  MainPath & "not found"
else if
 msgbox "completed"

Function FindFileRec(ThisFolder) 
Dim fileName,subFolderobj,subFolderList,Folderobj
Set Folderobj=objFileSystem.GetFolder(ThisFolder)
msgbox "control here 2"

For Each fileName In Folderobj.Files 
fileCount=fileCount+1 'update count
UpldateListInTextFile fileName.Name,NewFile
Next 'File
NewFile.Close()
End Function 

Function UpldateListInTextFile(sfile, NewFile) 
NewFile.WriteLine(sfile) 
End function

1 Ответ

0 голосов
/ 06 марта 2020

См. OpenAsTextStream метод.

' VBScript
Const OUT_FILE = "C:\temp\FileList.txt"
Const PATH = "C:\temp\txt"

Dim objFSO, objOutFile, objFolder, objInFile, objTS, str, count
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objOutFile = objFSO.CreateTextFile(OUT_FILE, True)

If objFSO.FolderExists(PATH) then

    Set objFolder = objFSO.getFolder(PATH)
    For Each objInFile In objFolder.Files 
        set objTS = objInFile.OpenAsTextStream

        str = MID(objTS.readline,35,11)
        objOutFile.WriteLine objInFile.name & vbTab & str
        objTS.close

        count = count + 1
    Next

    objOutFile.close
    msgbox count & " lines written to " & OUT_FILE, vbInformation, "Finished"
Else
    msgbox "Path " & PATH & "not found", vbCritical
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...