标签: wsh

我可以在vbscript WSH脚本中获取环境变量吗?

是否可以在Windows Scripting Host(WSH)VBS脚本中读取系统环境变量?

(我正在使用Windows Scripting Host编写VBScript以获取Cruise Control的任务,并希望获取项目构建URL.)

vbscript wsh environment-variables

18
推荐指数
4
解决办法
6万
查看次数

如何在单独的文件中创建一个javascript库并将其"包含"在另一个文件中?

首先,一个警告.主脚本不在网页中运行.我将使用Windows脚本宿主在Windows中运行.js文件.

问题: 我想创建一个包含许多对象的javascript"库",每个对象都有许多功能.我希望这个库会随着时间的推移变得相当大,并希望将它保存在一个单独的javascript文件中(我们称之为Library.js).我想从另一个脚本访问Library.js中的对象(让我们称之为User.js).

本质上,我正在寻找类似于C/C++"包含"范例的东西.

反正有没有在javascript中实现这个?(请记住,这不是基于网络的)

javascript wsh include windows-scripting

17
推荐指数
2
解决办法
8768
查看次数

强制VBS使用cscript而不是wscript运行

什么是stackoverflow批准(因此正确)方法强制VBS使用cscript而不是wscript运行 - 无论用户尝试什么?

一个快速的谷歌搜索显示了大量的例子,但其中一些只是不起作用,而那些通常不能处理它可能已经参数运行的事实,所以我很想知道最好的方法是什么.

这是一个不处理参数的例子:

sExecutable = LCase(Mid(Wscript.FullName, InstrRev(Wscript.FullName,"\")+1))
If sExecutable <> "cscript.exe" Then
  Set oShell = CreateObject("wscript.shell")
  oShell.Run "cscript.exe """ & Wscript.ScriptFullName & """"
  Wscript.Quit
End If
Run Code Online (Sandbox Code Playgroud)

我很欣赏这可能很容易修改以处理参数,但意识到这可能不是解决问题的最佳方法.

背景:我正在编写一个脚本,可以通过双击或(很可能)从DOS批处理文件或作为计划任务运行.它可以包含一个或多个可选的命令行参数.

vbscript arguments wsh

17
推荐指数
2
解决办法
3万
查看次数

用CScript运行Javascript?

我正在尝试学习如何使用CScript.exe运行Javascript(而不是VBScript),但是当我尝试时,我收到一个错误:

cscript temp.js
Input Error: There is no script engine for file extension ".js".
Run Code Online (Sandbox Code Playgroud)

认为这是可能的 - 任何想法是什么问题?

javascript windows wsh windows-7

17
推荐指数
4
解决办法
2万
查看次数

如何在不使用任何外部工具的情况下下载包含批处理文件的文件?

首先澄清这个问题的目的是HTTP(s)下载.对于FTP,我可能会问(并回答)另一个问题.以下是一些类似的问题 - 但我希望更加准确.

除了排除外部工具,我希望解决方案适用于最广泛类型的Windows机器(包括仍然有足够大份额的XP,Win2003,Vista).另外,作为WSH可能的选项之一,我不喜欢使用临时文件和所有要打包在单个.bat文件中的东西(jscript和vbscript都可以).

什么是可能的方法.

  1. 使用BITSADMIN的 "纯"批处理解决方案- 每台Windows机器上都有一个命令行实用程序.它不是很方便,但它是唯一一个不应该使用其他脚本语言的选项.
  2. 使用WSH - 可能有三种方法 - WinHTTP,MSXML2.XMLHTTP ,InternetExlorer.Application - 它们都是可访问的ActiveX对象,按照我喜欢的顺序排列.WinHTTP和MSXML2.XMLHTTP的功能非常相似,但WinHTTP的声誉是更稳定.InternetExlorer.Application实际上只是可以通过ActiveX对象访问的Internet Explorer,一些UI元素是不可避免的(是吗?)所以我会跳过这个.
  3. 使用.NET - 可以使用Jscript.net创建一个包含所有三个默认.NET编译器(Jscript.net,VB.Net,C#)的混合批处理文件,没有冗余错误消息,所以我更喜欢它.如果我们忽略这样一个事实,即编译的.exe所有代码都在一个文件中,所以根据我的说法,这符合要求:-).使用.NET我们可以使用System.Net.WebClient或System.Net.HttpWebRequest(WebClient)依赖它)或
    System.Web.HttpRequest,但是现在我只发布System.Net.WebClient解决方案.这里也可以使用WSH访问更多相同的ActiveX对象.所以有很多方法可以下载文件与.Net.May将来我会更新我的答案.无论如何只有Webclient是专门为下载而设计的.
  4. 使用powershell - 与.NET具有相同的可能性,但是你可以在所有机器上安装的机会较少.所以我也会跳过这个.

.net wsh batch-file jscript

17
推荐指数
1
解决办法
3万
查看次数

CreateObject和Wscript.CreateObject有什么区别?

有没有人知道使用该选项背后的原因:

Wscript.CreateObject("some.object")
Run Code Online (Sandbox Code Playgroud)

CreateObject("some.object")
Run Code Online (Sandbox Code Playgroud)

在VBScript中?当我找到使用的文档或示例时Wscript.CreateObject,我通常会重写使用CreateObject,因为它似乎总是有效,然后我可以轻松地重用HTA或ASP中的代码.但我一直想知道为什么这个功能存在,如果你在VBScript中使用这种或那种方式会有什么不同.

windows vbscript wsh

15
推荐指数
2
解决办法
3万
查看次数

如何在HTA中获取文件的关联图标(HTML/Javascript/VBScript)

我正在构建一个HTA应用程序,我需要在其中显示一个文件列表及其相关的系统图标.
我正在使用FileSystemObject列出文件,但似乎无法获取图标...

我在VBS中找到了一个可以将文件图标保存为.ico的脚本.
它读取文件(PE资源文件,.exe或dll)并解析图标数据.我修改了该脚本以返回图标的字节,将其转换为base64并在HTML中使用嵌入的base64图像.这是原始脚本:http://gilpin.us/IconSiphon/

问题

  1. )在大多数情况下,.ico包含多个图标(许多尺寸和颜色深度),但我无法指定使用哪一个(因为我需要16x16图标).

  2. )并非所有图标都显示

  3. )因为它读取exe和dll,所以文件可能很慢(但我很好,我可以缓存已经获取的图标)

我也试过一些ActiveX控件,但似乎都没有正常工作.甚至微软提供的那些(ShellFolderView或ListView)都非常错误.

要求

  • 必须显示16x16图标

  • 必须允许多个文件选择

  • 一切都必须嵌入hta(如果可能的话).没有外部.exe

有谁知道实现这一目标的方法?

谢谢!

html javascript vbscript wsh hta

13
推荐指数
1
解决办法
2265
查看次数

使用JScript在WSH中提示对话框?

如何在WSH usig JScript中打开提示对话框?

我在文档中找到的唯一弹出对话框是WshShell.Popup()方法.但是我需要一种方法来请求用户输入一个字符串,比如DOM中的window.prompt()方法.

谢谢.

prompt wsh windows-scripting jscript

12
推荐指数
2
解决办法
1万
查看次数

经典ASP亚马逊s3休息授权

我对这里的错误感到困惑......

<script language="javascript" runat="server">
  function GMTNow(){return new Date().toGMTString()}
</script>
<%

Const AWS_BUCKETNAME = "uk-bucketname"
Const AWS_ACCESSKEY = "GOES HERE"
Const AWS_SECRETKEY = "SECRET"
LocalFile = Server.Mappath("/test.jpg")

Dim sRemoteFilePath
    sRemoteFilePath = "/files/test.jpg" 'Remote Path, note that AWS paths (in fact they aren't real paths) are strictly case sensitive

Dim strNow
    strNow = GMTNow() ' GMT Date String

Dim StringToSign
    StringToSign = Replace("PUT\n\nimage/jpeg\n\nx-amz-date:" & strNow & "\n/"& AWS_BUCKETNAME & sRemoteFilePath, "\n", vbLf)

Dim Signature
    Signature = BytesToBase64(HMACSHA1(AWS_SECRETKEY, StringToSign))

Dim Authorization
    Authorization = …
Run Code Online (Sandbox Code Playgroud)

rest vbscript wsh amazon-s3 asp-classic

12
推荐指数
2
解决办法
5386
查看次数

是否可以从批处理文件或cmd脚本向DLL搜索路径添加目录?

MSDN说,函数SetDllDirectory()可用于将目录插入DLL搜索路径.可以从批处理文件或cmd脚本访问此函数,也许使用via cscript

我们的目标是在%WINDIR%等预先存在的旧版本之前找到我们的开发版本的dll,而不必为此编写程序.

提前感谢您的时间和想法.

dll cmd wsh batch-file

11
推荐指数
3
解决办法
3万
查看次数