这似乎应该很容易。我之前从未使用过JScript,我正在查看微软提供的JScript api,但没有运气。这就是我所拥有的:
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();
我收到有关fitem.Name的错误,它不是对象或null或其他内容。但是,该文件夹中肯定有文件。
答案 0 :(得分:3)
脚本中的items
变量包含FolderItems
集合而不是数组。要访问集合的项目,您需要使用Items(index)
表示法。所以,替换
fitem = items[i];
与
fitem = items.Item(i);
将使脚本有效。
答案 1 :(得分:2)
这对我有用,我不得不改变文件的路径或者我被拒绝访问(win 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>
答案 2 :(得分:0)
显然你不能像数组一样访问它,必须调用Item()方法。