2011-04-19 6 views
2

이것은 쉬운 것처럼 보입니다. 전에 JScript를 사용 해본 적이 없으며 Microsoft에서 제공하는 JScript API를보고 있지만 운이 없습니다. 여기에 내가 무엇을 가지고 :jscript - 디렉토리에있는 파일 목록을 가져 오는 중

var fso, tf; 
fso = new ActiveXObject("Scripting.FileSystemObject"); 
tf = fso.CreateTextFile("New Tracks.txt", true); 
var objShell = new ActiveXObject("Shell.Application"); 
var lib; 
lib = objShell.BrowseForFolder(0,"Select Library Folder",0); 
items = lib.Items() 
for (i=0;i<items.Count;i++) 
{ 
    fitem = items[i]; 
    tf.WriteLine(fitem.Name); 
} 
WScript.Echo("Done"); 
tf.Close(); 

나는 그것에 대해 개체 또는 null 또는 뭔가가 잘못에 대한 오류가 발생합니다. 그러나 해당 폴더에 파일이 있습니다.

+0

아마도 다른 방법이 있습니다. 무엇을하려 하시나요? –

답변

3

스크립트의 items 변수에 배열이 아닌 FolderItems 컬렉션이 있습니다. 컬렉션의 항목에 액세스하려면 Items(index) 표기법을 사용해야합니다. 그래서, 스크립트 작업을하게됩니다

fitem = items.Item(i); 

fitem = items[i]; 

교체.

+0

감사합니다. 나는 그걸 알아 냈다. 그게 문제가 뭐지? – JPC

0

분명히 배열처럼 액세스 할 수없고 Item() 메서드를 호출해야합니다.

2

이것은 나를 위해 작동합니다, 나는 파일 경로를 변경해야했거나 액세스가 거부되었습니다 (7 번 승리).

<script language="JScript"> 
var fso, tf; 
fso = new ActiveXObject("Scripting.FileSystemObject"); 
tf = fso.CreateTextFile("c:\\New Tracks.txt", true); 

var objShell = new ActiveXObject("Shell.Application"); 
var lib; 

lib = objShell.BrowseForFolder(0,"Select Library Folder",0); 

var en = new Enumerator(lib.Items()); 

for (;!en.atEnd(); en.moveNext()) { 
    tf.WriteLine(en.item()); 
} 

WScript.Echo("Done"); 
tf.Close(); 
    </script> 
관련 문제