GVKun编程网logo

通过Windows脚本宿主以UTF-8编码运行JScript或VBScript文件的问题

16

在本文中,您将会了解到关于通过Windows脚本宿主以UTF-8编码运行JScript或VBScript文件的问题的新资讯,并给出一些关于adodb–Windows脚本宿主(jscript):我如何下

在本文中,您将会了解到关于通过Windows脚本宿主以UTF-8编码运行JScript或VBScript文件的问题的新资讯,并给出一些关于adodb – Windows脚本宿主(jscript):我如何下载二进制文件?、javascript – setTimeout无法在windows脚本(jscript)中工作、javascript – 通过WebScriptObject将Cocoa对象暴露给JS脚本环境、JavaScript/VBScript脚本程序调试(Wscript篇)的实用技巧。

本文目录一览:

通过Windows脚本宿主以UTF-8编码运行JScript或VBScript文件的问题

通过Windows脚本宿主以UTF-8编码运行JScript或VBScript文件的问题

我不确定我做错了什么,但如果我将它保存在带有UTF-8编码的.js文件中,我似乎无法通过 Windows脚本宿主运行以下JScript:

var name = "Hello World!";
WScript.echo(name);

当我运行它时,它给了我这个错误:

请注意,如果我使用ANSI编码保存脚本,脚本运行正常.

Windows Script Host引擎是否与UTF-8编码不兼容?

解决方法

VBScript和JScript的可能源文件编码是ANSI或UTF-16(LE).不能使用UTF-8.

adodb – Windows脚本宿主(jscript):我如何下载二进制文件?

adodb – Windows脚本宿主(jscript):我如何下载二进制文件?

我正在尝试使用 Windows脚本宿主(JScript)自动下载文件.我看到ADODB.Stream有一个Open方法,其文档似乎应该可以打开HTTP URL并流式传输响应体:
var url = 'http://example.com/example.tar.gz';
var path = 'example.tar.gz';

var input = WScript.CreateObject('ADODB.Stream');

input.Open(url);
input.SavetoFile(path);
input.Close();

但它在公开电话上遭到轰炸

(null):在此操作的范围内未找到与名称,范围或选择条件匹配的对象或数据.

这是JScript中的下载代码.还添加了一些API信息的引用.
var Source = WScript.Arguments.Item(0);
var Target = WScript.Arguments.Item(1);
var Object = WScript.CreateObject('MSXML2.XMLHTTP');

Object.Open('GET',Source,false);
Object.Send();

if (Object.Status == 200)
{
    // Create the Data Stream
    var Stream = WScript.CreateObject('ADODB.Stream');

    // Establish the Stream
    Stream.open();
    Stream.Type = 1; // adTypeBinary
    Stream.Write(Object.ResponseBody);
    Stream.Position = 0;

    // Create an Empty Target File
    var File = WScript.CreateObject('Scripting.FileSystemObject');
    if (File.FileExists(Target))
    {
        File.DeleteFile(Target);
    }

    // Write the Data Stream to the File
    Stream.SavetoFile(Target,2); // adSaveCreateOverWrite
    Stream.Close();
}

ADODB流:

> http://www.w3schools.com/ado/ado_ref_stream.asp
> http://msdn.microsoft.com/en-us/library/windows/desktop/ms675032.aspx
> http://msdn.microsoft.com/en-us/library/windows/desktop/ms680846.aspx

Scripting.FileSystemObject的:

> http://www.w3schools.com/asp/asp_ref_filesystem.asp

javascript – setTimeout无法在windows脚本(jscript)中工作

javascript – setTimeout无法在windows脚本(jscript)中工作

当我尝试在我的程序中运行以下代码时
setTimeout("alert('moo')",1000);

我收到以下错误

Error: Object expected
Code: 800A138F
Source: Microsoft JScript runtime error

为什么?我打电话给错了吗?我想要做的是延迟后续功能的执行.

解决方法

听起来你在非基于浏览器的脚本(Windows脚本宿主或类似的东西)中使用setTimeout.你不能这样做.但是,您可以使用WScript.Sleep暂时暂停脚本,您可以使用它来实现类似的效果.此外,警报不是WSH功能;你可能想要WScript.Echo.更多关于 WSH reference on MSDN.

javascript – 通过WebScriptObject将Cocoa对象暴露给JS脚本环境

javascript – 通过WebScriptObject将Cocoa对象暴露给JS脚本环境

我看到有几个类似的问题,但这有点基础.

我试图通过WebScriptObject将一个简单的Cocoa对象暴露给WebView,希望允许页面将消息发送到Cocoa对象.关于此的文档非常清楚,但由于某种原因,我无法让它工作.想知道你是否看看……

这是我正在加载到脚本环境中的Object.

@interface Client : NSObject {

     Nsstring *test;

}

@implementation Client

- (id)init {

    self = [super init];
    test = [[Nsstring alloc] initWithString:@"hey Simon"];
    return self;

}

- (Nsstring *)test {

    return test;
}

然后我在WebView的frameLoad委托中加载该对象,其中:

- (void)webView:(WebView *)webView didClearWindowObject:(WebScriptObject *)windowObject forFrame:(WebFrame *)frame {

    Client *_client = [[Client alloc] init];
    [windowObject setValue:_client forKey:@"client"];

}

在JS方面,我只是在做一些非常基本的事情:

if( 'client' in window ) {

var client = window.client;

console.log( '---' );

console.log( 'client.test(): ' + client.test() );

console.log( '---' );

}

JS控制台说TypeError:表达式’client.test'[undefined]的结果不是函数.

有几件事.我知道对象正在被正确加载到脚本环境中,因为它不会通过条件加我可以看到描述:

console.log( 'Client object: ' + client )

但我只是不知道如何正确地暴露我的可可方法.看看我上面所说的,我是如何在我的类中实现方法或在JS中调用它们有一些问题?

提前致谢,
亚历克

解决方法

它就在文档中.

总结

以上是小编为你收集整理的javascript – 通过WebScriptObject将Cocoa对象暴露给JS脚本环境全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

JavaScript/VBScript脚本程序调试(Wscript篇)

JavaScript/VBScript脚本程序调试(Wscript篇)

在实际工作中,我发现程序员对脚本抱怨最多的就是脚本程序很难调试这个缺点,特别是调试.vbs等WSH程序的时候,总是:
1. 在资源管理器里面双击一个.vbs文件。
2. 程序里面发生了一个错误,例如异常,或者编程逻辑错误。
3. 一行行阅读源文件,然后在估计发生错误的地方,添加很多的Msgbox.Show,打印一些变量的值。
4. 重新执行.vbs文件
5. “当当当”,一系列的 “确定”点完了以后,人也晕了,重新回到第三步继续……
其实我们也是可以用Visual Studio调试这类WSH程序的,关键就在.vbs等WSH脚本程序的解释器wscript.exe和cscript.exe提供了调试支持:
1. 当我们在资源管理器里面双击一个.vbs文件时,资源管理器实际上是运行wscript.exe来解释和执行这个.vbs文件的。
2. Wscript.exe和cscript.exe都支持这两个选项 /D – 启用调试功能,/X – 在调试器里面执行脚本程序。
这样,我们可以使用两种方法在Visual Studio里面调试脚本程序,这里我只介绍第二种方法 -- 第一种方法不知道为什么我的Win 7 + Visual Studio 2008不能工作,:(。
例如下面的.vbs代码,将它保存到c:"test.vbs,我们要调试这个程序,源文件如下:
复制代码 代码如下:

Set obj = CreateObject("System.Collections.ArrayList")
obj.Add("this is a test")
obj.Add(1)
obj.Add(obj)
Msgbox obj(0)
Msgbox obj(1)
Msgbox obj(2).ToString()

1. 打开命令行,更换目录到C:盘,执行下面这个命令:
Wscript.exe /X test.vbs
2. 这个时候,应该会弹出一个Visual Studio对话框,提示你选择合适的调试器,直接点击上面的确定按钮就好了。
3. 最后,你就可以跟调试C#或者C++程序一样,在 Visual Studio里面设置断点,查看变量的值了,如下图所示:
您可能感兴趣的文章:
  • ASP、vbscript编码模板
  • ASP中一个用VBScript写的随机数类
  • 利用vbscript脚本修改文件内容,此适用于自动化的操作中
  • asp,VBscript语法错误,史上最全最详细最精确
  • vbscript脚本编程教程2利用fso来进行文件操作
  • 使用vbscript脚本在表单中进行选择的代码
  • 用vbscript脚本实现返回 IP 配置数据的代码
  • ASP里面令人震撼地Debug类(VBScript)
  • 调试JavaScript/VBScript脚本程序(IE篇)
  • 枚举域内计算机个数vbscript脚本(没环境,没测试)
  • ASP/VBScript中CHR(0)的由来以及带来的安全问题分析
  • ASP(VBScript)中整除和取余
  • ASP基础知识VBScript基本元素讲解
  • ASP基础入门第四篇(脚本变量、函数、过程和条件语句)

今天关于通过Windows脚本宿主以UTF-8编码运行JScript或VBScript文件的问题的讲解已经结束,谢谢您的阅读,如果想了解更多关于adodb – Windows脚本宿主(jscript):我如何下载二进制文件?、javascript – setTimeout无法在windows脚本(jscript)中工作、javascript – 通过WebScriptObject将Cocoa对象暴露给JS脚本环境、JavaScript/VBScript脚本程序调试(Wscript篇)的相关知识,请在本站搜索。

本文标签:

上一篇在Windows上的Excel VBA中,如何为已解析的JSON变量获取字符串化的JSON表示而不是“[object Object]”?

下一篇windows-8 – Windows 8中listview(WinJS)中的动态模板(javascript 动态)