2016-02-23 40 views
2

我試着寫使用VBS這段代碼搜索extention,(IM相當新) 我想有代碼經過一個文件夾/目錄,並挑選出所有名爲「.txt」文件中,像for循環。這些文本文件然後可以使用MSGBOX(「TXT文件名」),這是我心中已經有上市至今:VBS文件在目錄

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: 請忽略和糟糕的拼寫和我的可怕的格式(IM新的StackOverflow)謝謝! (也是上面的代碼大多是混合在一起的代碼,我發現在互聯網上)

+0

你告訴它比較TXT和TXT。這就是UCase的含義。 '如果LCase(objFSO.GetExtensionName(objFile.name))= LCase(「.txt」)Then'。我對第二個LCase有些迂腐,但是如何比較vbscript中的文本與雙方是相同的。 –

回答

2

你應該修改這一行;如果你使用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

+0

可能只是使用strcomp(,,vbTextCompare)使其更明顯 – Totonga