![](/img/trans.png)
[英]Windows Script Host file size limit \ Cannot retrieve referenced URL exception
[英]Windows Script Host “cannot find file” exception in windows XP only
碼:
var regs = {'E':/[e]/g};//in real code here are actual regular expressions
var fso = new ActiveXObject("Scripting.FileSystemObject");
var objShell = new ActiveXObject("Shell.Application");
var lib, new_file;
var cur_path = WScript.ScriptFullName.substring(0, WScript.ScriptFullName.length - WScript.ScriptName.length);
in_path = cur_path+'input';
out_path = cur_path+'output/';
lib = objShell.NameSpace(in_path);
items = lib.Items()
n=0;
for (i=0;i<items.Count;i++)
{
fitem = items.Item(i);
cur_file = fso.OpenTextFile(in_path + '/' + fitem.Name, 1);
new_file = fso.CreateTextFile(out_path + fitem.Name, true);
while (cur_file.AtEndOfStream == false) {
var line = cur_file.ReadLine();
for (key in regs) {
line = line.replace(regs[key], key );
}
new_file.WriteLine(line);
}
cur_file.Close();
new_file.Close();
n++;
}
WScript.Echo("Total files found/converted:" + i + "/" + n);
帶有腳本的文件夾包含input
和output
文件夾, input
文件夾中包含一些樣本。
我需要它才能在WinXP中工作。
該腳本在Win7中運行完美,但是用戶聲稱在Windows XP中會拋出異常“找不到文件”(或類似的東西),並說“第22行”。 腳本中的第22行是“ cur_file = ...”和“ new_file = ...”之間的空白行。
誰能告訴我這是怎么了? XP的OpenAsTextStream
和OpenTextFile
方法之間有什么區別(調用者除外)?
我的猜測是,它與CreateTextFile
或OpenTextFile
方法有些混亂,例如WinXP中的另一個正確方法名稱或WinXP中的其他路徑或其他名稱。 不幸的是我沒有WinXP,也無法正確測試。
UPD:剛剛注意到我在第15行中缺少分號。這是否可能是這種行為的原因? (我對此表示懷疑)
嘗試用反斜杠替換斜杠,例如:
cur_file = fso.OpenTextFile(in_path + '\' + fitem.Name, 1);
如果可行,Win7可能會自動規范化文件路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.