标签: windows-scripting

如何停止在Windows中运行的vb脚本

我正在使用Windows 7

我写了一个脚本来检查我的笔记本电脑是以电池还是交流电流运行.我用Google搜索并在那里成功.

dim a
a=1
Do While a=1 
If IsLaptop( "." ) Then
   ' WScript.Echo "Laptop"
Else
   ' WScript.Echo "Desktop or server"
End If
Loop

Function IsLaptop( myComputer )
    On Error Resume Next    
    Set objWMIService = GetObject( "winmgmts://" & myComputer & "/root/cimv2" )
    Set colItems = objWMIService.ExecQuery( "Select * from Win32_Battery", , 48 )
    IsLaptop = False
    For Each objItem in colItems
        if objItem.BatteryStatus=2 and objItem.EstimatedChargeRemaining=98 then
             WScript.Echo "Remove Ac Adapter Immediately"
        elseif objItem.BatteryStatus=1 and objItem.EstimatedChargeRemaining=10 then
             WScript.Echo "Pluggin …
Run Code Online (Sandbox Code Playgroud)

vbscript scripting windows-scripting

7
推荐指数
2
解决办法
9万
查看次数

将TypeScript编译器加载到ClearScript中,"WScript未定义",不可能完成任务?

我尝试使用ClearScript加载TypeScript编译器以编译一些基本的TypeScript代码.

不幸的是,在执行TypeScript编译器源时,我收到此错误:

'WScript'未定义

这是我使用的LINQPad程序,将ClearScript dll和TypeScript编译器文件放在.linq程序旁边:

void Main()
{
    using (var js = new Microsoft.ClearScript.Windows.JScriptEngine(Microsoft.ClearScript.Windows.WindowsScriptEngineFlags.DisableSourceManagement))
    {
        var typeScriptSource = File.ReadAllText(Path.Combine(Path.GetDirectoryName(Util.CurrentQueryPath), "tsc.js"));
        js.Execute(typeScriptSource);
        const string typeScriptCode = @"
            class Greeter {
                greeting: string;
                constructor(message: string) {
                    this.greeting = message;
                }
                greet() {
                    return ""Hello, "" + this.greeting;
                }
            }
            function test()
            {
                var greeter = Greeter(""world"");
                return greeter.greet();
            }
        ";
        js.Script.TypeScript.Compile(typeScriptCode);

        object result = js.Script.test();
        result.Dump();
    }
}

#region Copy ClearScript to correct location …
Run Code Online (Sandbox Code Playgroud)

.net c# windows-scripting typescript clearscript

7
推荐指数
3
解决办法
3125
查看次数

是否有适用于Windows脚本主机代码的Profiler?

是否有任何分析器可以分析在WSH(VBScript,JavaScript,WSF)下运行的代码?除了使用跟踪语句进行手工检测之外,在WSH下运行代码的好方法是什么?

profiling wsh windows-scripting

6
推荐指数
1
解决办法
495
查看次数

使用Windows脚本宿主

我正在使用Windows脚本主机用于某种安装程序应用程序,我正在使用它在开始菜单中创建快捷方式.当我切换到x64环境时出现此问题(win7 ultimate x64 + vs2010)

我添加了对Windows脚本宿主对象模型的引用(来自c:\ windows\syswow64\wshom.ocx),它生成了Interop.IWshRuntimeLibrary dll.

我添加了'using IWshRuntimeLibrary;' 到我的.cs文件,但是当我尝试创建时

WshShell sh = new WshShellClass(); 
Run Code Online (Sandbox Code Playgroud)

它引发了一个异常:

无法加载文件或程序集'Interop.IWshRuntimeLibrary,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一.尝试加载格式不正确的程序.

我认为我需要64位版本的wshom.ocx来实现这一点,但我不知道应该尝试什么.

或者我只是转储Windows Script的东西,但我需要另一种方法来从.net应用程序创建开始菜单快捷方式.

c# interop windows-scripting

6
推荐指数
1
解决办法
9184
查看次数

for循环通过windows cmd中的文件夹循环以进行文件重命名

我正在尝试使用ImageMagic迭代带有图像的文件夹以创建缩略图,并使用small_前缀重命名缩略图文件.

当我在单个文件夹中执行它时,它工作得很好:

FOR %a in (*.jpg) DO convert %a -thumbnail 30% small_%a
Run Code Online (Sandbox Code Playgroud)

要遍历子文件夹,我只需要/ R标志:

FOR /R %a in (*.jpg) DO convert %a -thumbnail 30% small_%a
Run Code Online (Sandbox Code Playgroud)

这将导致缩略图的新名称 small_c:\images\image.jpg错误:)

如何small_在脚本中通过子文件夹递归时获取前缀到文件名,即从?c:\images\image.jpgc:\images\small_image.jpg

谢谢.

recursion command-line rename image windows-scripting

6
推荐指数
1
解决办法
8938
查看次数

VBScript从Shell获得结果

Set wshShell = WScript.CreateObject ("WSCript.shell")
wshshell.run "runas ..."
Run Code Online (Sandbox Code Playgroud)

如何获取结果并显示在MsgBox中

vbscript scripting wsh windows-scripting

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

C#中的Windows shell脚本

我敢肯定,几个月前,我读到推出Windows脚本不仅平常的可能性.bat,而且.js,.vbs.cs!

我愿意.cs今天早上在C#文件中尝试使用Windows脚本,但我无法在网上找到任何引用.所有CS/C#脚本的东西似乎都是第三方.

你有任何关于C#for Windows命令行脚本的知识参考/链接,纯微软风格?

是的,这意味着动态C#编译......所以也许我认为这是可能的.就告诉我嘛.

.net c# windows-scripting

6
推荐指数
2
解决办法
7488
查看次数

为什么WScript.StdOut.Write方法在VBS与JScript中的行为不同?

我在VBS和JScript中有两个小程序:

VBScript.vbs:

For i=0 To 255
   WScript.StdOut.Write Chr(i)
Next
Run Code Online (Sandbox Code Playgroud)

JScript.js:

for ( var i=0; i <= 255; ++i )
   WScript.StdOut.Write(String.fromCharCode(i));
Run Code Online (Sandbox Code Playgroud)

当我在命令提示符中执行它们时,它们显示不同的结果:

C:>cscript /nologo VBScript.vbs
 ?????
??????¶§?????????? !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]
^_`abcdefghijklmnopqrstuvwxyz{|}~???'ƒ".??^%S<O?Z??''""--~Ts>o?zY ¡¢£¤¥¦§¨©ª«¬­®
¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþ
ÿ

C:>cscript /nologo JScript.js
 ?????
??????¶§?????????? !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]
^_`abcdefghijklmnopqrstuvwxyz{|}~????????????????????????????????? ¡¢£¤¥¦§¨©ª«¬­
®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüý
þÿ
Run Code Online (Sandbox Code Playgroud)

可以解释之前的输出,因为JScript的fromCharCode方法与VBScript的Chr函数之间存在一些操作差异.但是,如果尝试将输出重定向到磁盘文件,结果会有很大不同:

C:>cscript /nologo VBScript.vbs > VBScript.txt

C:>cscript /nologo JScript.js > JScript.txt
C:\JScript.js(2, 4) Microsoft JScript runtime error: Invalid procedure call or argument

C:>dir *.txt

15/01/2013  05:48 p.m.               128 JScript.txt
15/01/2013  05:48 p.m.               256 VBScript.txt
Run Code Online (Sandbox Code Playgroud)

在这种情况下,两个程序在相同的条件下使用相同的 WSH方法,所以我不明白为什么VBS正确生成256个字符的文件,但JScript发出错误并只生成前128个字符. …

vbscript wsh windows-scripting jscript

6
推荐指数
1
解决办法
4932
查看次数

SETLOCAL ENABLEDELAYEDEXPANSION导致CD和PUSHD不能持续存在

我试图使用setlocal enabledelayedexpansion,并cd在一个批处理脚本,这似乎不会持续变回壳一起.

我需要的原因setlocal enabledelayedexpansion是我需要在脚本运行时动态扩展脚本中的变量.

考虑以下示例批处理文件:

a.bat
================================
setlocal enabledelayedexpansion
cd ..
Run Code Online (Sandbox Code Playgroud)

上述批处理文件未按预期迁移到上一个目录!

检查一下.

batch-file windows-scripting

6
推荐指数
2
解决办法
1831
查看次数

如何比较文件夹是否存在以及是否存在,请创建她

我有以下问题,我需要创建一个脚本,比较目录是否存在,如果它不存在,创建它.在linux shell中,我使用参数-F来检查目录是否存在.如何在PowerShell中测试?

在Linux shell中:

DIR=FOLDER

if [ -f $DIR ]
then
    echo "FOLDER EXIST";
else
    echo "FOLDER NOT EXIST";
    mkdir $DIR
fi
Run Code Online (Sandbox Code Playgroud)

如何在Windows PowerShell中进行此比较?

$DIRE = "C:\DIRETORIO"

if ( -e $DIRE ) {
    echo "Directory Exists"
} else {
    md DIRETORIO
}
Run Code Online (Sandbox Code Playgroud)

powershell scripting windows-scripting powershell-3.0

6
推荐指数
2
解决办法
7961
查看次数