我正在使用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) 我尝试使用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) 是否有任何分析器可以分析在WSH(VBScript,JavaScript,WSF)下运行的代码?除了使用跟踪语句进行手工检测之外,在WSH下运行代码的好方法是什么?
我正在使用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应用程序创建开始菜单快捷方式.
我正在尝试使用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.jpg到c:\images\small_image.jpg?
谢谢.
Set wshShell = WScript.CreateObject ("WSCript.shell")
wshshell.run "runas ..."
Run Code Online (Sandbox Code Playgroud)
如何获取结果并显示在MsgBox中
我敢肯定,几个月前,我读到推出Windows脚本不仅平常的可能性.bat,而且.js,.vbs和.cs!
我愿意.cs今天早上在C#文件中尝试使用Windows脚本,但我无法在网上找到任何引用.所有CS/C#脚本的东西似乎都是第三方.
你有任何关于C#for Windows命令行脚本的知识参考/链接,纯微软风格?
是的,这意味着动态C#编译......所以也许我认为这是可能的.就告诉我嘛.
我在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个字符. …
我试图使用setlocal enabledelayedexpansion,并cd在一个批处理脚本,这似乎不会持续变回壳一起.
我需要的原因setlocal enabledelayedexpansion是我需要在脚本运行时动态扩展脚本中的变量.
考虑以下示例批处理文件:
a.bat
================================
setlocal enabledelayedexpansion
cd ..
Run Code Online (Sandbox Code Playgroud)
上述批处理文件未按预期迁移到上一个目录!
检查一下.
我有以下问题,我需要创建一个脚本,比较目录是否存在,如果它不存在,创建它.在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) c# ×3
scripting ×3
vbscript ×3
wsh ×3
.net ×2
batch-file ×1
clearscript ×1
command-line ×1
image ×1
interop ×1
jscript ×1
powershell ×1
profiling ×1
recursion ×1
rename ×1
typescript ×1