【问题标题】:vbs file search for extention in a directoryvbs文件在目录中搜索扩展名
【发布时间】:2016-02-23 20:46:36
【问题描述】:

我正在尝试在 VB 中编写此代码,(我很新) 我想让代码通过一个文件夹/目录,并选择所有“.txt”文件,类似于 for 循环。然后可以使用 MsgBox(“txt 文件名”)列出这些文本文件。这是我到目前为止所得到的:

Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "C:\Users\Desktop\folder"
Set objFolder = objFSO.GetFolder(objStartFolder)
Set colFiles = objFolder.Files
For Each objFile in colFiles
    If UCase(objFSO.GetExtensionName(objFile.name)) = ".txt" Then
    Wscript.Echo objFile.Name

Next

它似乎没有选择一个名为“name.txt”的 txt 文件。任何帮助将不胜感激。

ps: 请忽略拼写错误和我糟糕的格式(我是stackoverflow的新手)谢谢! (上面的代码也大多是我在网上找到的代码)

【问题讨论】:

  • 你告诉它比较TXT和txt。这就是UCase的意思。 If LCase(objFSO.GetExtensionName(objFile.name)) = LCase(".txt") Then。我对第二个 LCase 有点迂腐,但这就是如何比较 vbscript 中的文本是相同大小写双方。

标签: file vbscript


【解决方案1】:

你应该修改这一行;如果你使用UCase

If UCase(objFSO.GetExtensionName(objFile.name)) = ".txt"

If UCase(objFSO.GetExtensionName(objFile)) = "TXT"

或者如果你使用LCase

If LCase(objFSO.GetExtensionName(objFile)) = "txt"

你的代码看起来像这样:

Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "C:\Users\Desktop\folder"
Set objFolder = objFSO.GetFolder(objStartFolder)
Set colFiles = objFolder.Files
For Each objFile in colFiles
    If LCase(objFSO.GetExtensionName(objFile)) = "txt" Then
        Wscript.Echo objFile.Name
    End If
Next

GetExtensionName Method

【讨论】:

  • 可能只使用 strcomp(, , vbTextCompare) 使其更明显
猜你喜欢
  • 1970-01-01
  • 2010-12-21
  • 2021-05-03
  • 1970-01-01
  • 2011-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多