我正在创建一个人脚本读取文件夹中的文件,(Scripting.FileSystemObject
),但我想关联一个indice inpubox类型int来确定我将在屏幕上写的文件夹中的哪个文件。 / p>
Ex:indice = inputbox ""
←4抓取文件夹4中的indice文件并在屏幕上显示您的名字。
我想知道这是否可行,因为已经尝试过多种方式甚至是矩阵,但没有结果。
这和我的代码。我不知道该去哪里!
Dim sFO, NovaPasta, Folder,File, Indice
Dim inpast(4)
'Setup
Set sFO = CreateObject("Scripting.FileSystemObject")
Set Folder = sFo.GetFolder("C:\Users\502526523\Documents\Control")
NovaPasta = "Control"
'Development
If Not sFO.FolderExists (NovaPasta) = True Then
sFO.CreateFolder (NovaPasta)
Wscript.Sleep 900
WScript.Echo "Pasta Criada"
Else
WScript.Echo "Pasta Existente "
End If
' Line Verificas a quantidade de inpastas dentro da pasta, se > 5
' deleta os exedentes com data mais antiga
For Each file In folder.Files
If Folder.Files.Count > 5 And (DateDiff("d", file.DateLastModified, Now) > 7) Then
WScript.Echo (file.Name & vbLf)
WScript.Echo ("Total files :" & Folder.Files.Count)
File.Delete
End If
Next
For Each file In folder.Files
inpast(0) = (file.Name)
inpast(1) = (file.Name)
inpast(2) = (file.Name)
inpast(3) = (file.Name)
inpast(4) = (file.Name)
Indice = Inputbox ("Digite o valor do Indice de 0...30")
Select Case Indice
Case 0
WScript.Echo inpast(0)
Case 1
WScript.Echo inpast(1)
Case 2
WScript.Echo inpast(2)
Case 3
WScript.Echo inpast(3)
Case 4
WScript.Echo inpast(4)
End Select
Next
答案 0 :(得分:0)
Set fso = CreateObject("Scripting.FileSystemObject")
Dirname = InputBox("Enter Dir name")
'Searchterm = Inputbox("Enter search term")
ProcessFolder DirName
Sub ProcessFolder(FolderPath)
' On Error Resume Next
Set fldr = fso.GetFolder(FolderPath)
msgbox fls.count
Msgbox fls.item("computerlist.txt")
End Sub
做第7次
Set Fls = fldr.files
For Each thing in Fls
Count = Count + 1
If count = 7 then msgbox Thing.Name & " " & Thing.DateLastModified
Next
答案 1 :(得分:0)
仍不确定我是否正确理解了您的问题。你的意思是你有一个文件名列表,你想显示与用户通过InputBox
输入的号码相对应的文件名?如果这是您想要的,您应该像这样更改第二个For Each
循环:
i = 0
For Each file In folder.Files
inpast(i) = file.Name
i = i + 1
Next
Indice = InputBox("Digite o valor do Indice de 0...30")
WScript.Echo inpast(CInt(Indice))
但请注意,第一个For Each
循环中的条件并不能保证循环后只剩下5个文件。如果由于某种原因,该文件夹包含超过5个在过去7天内修改过的文件,则第二个循环将失败并显示“下标超出范围”错误。
有几种方法可以解决这个问题:
inpast
数组,因此它可以容纳超过5个项目。For Each
)之后切断第二个Exit For
循环。另请注意,您应该清理输入。 (当用户输入文字,数字无效或按“取消”时会发生什么?)