小编mgr*_*639的帖子

VBscript代码捕获stdout,而不显示控制台窗口

这是一个VBScript代码示例,演示了如何捕获命令行程序发送到标准输出的任何内容.它执行命令xcopy /?并在消息框中显示输出.在出现消息框之前,您会看到控制台窗口弹出一瞬间.

Set objShell = WScript.CreateObject("WScript.Shell")
Set objExec = objShell.Exec("xcopy /?")
Do
    line = objExec.StdOut.ReadLine()
    s = s & line & vbcrlf
Loop While Not objExec.Stdout.atEndOfStream
WScript.Echo s
Run Code Online (Sandbox Code Playgroud)

这是另一个VBScript代码示例,演示如何在不显示控制台窗口的情况下执行脚本.

objShell.Run "c:\temp\mybatch.bat C:\WINDOWS\system32\cmd.exe", 0
Run Code Online (Sandbox Code Playgroud)

要么

objShell.Run "c:\temp\myscript.vbs C:\WINDOWS\system32\cscript.exe", 0
Run Code Online (Sandbox Code Playgroud)

你可以看到它有形式<script><space><executor>.最后一个示例使用objShell.Run而不是objShell.Exec

我不知道的是如何执行命令行程序(如果需要,从批处理文件),捕获标准输出,而不显示控制台窗口.有任何想法吗?

vbscript stdout batch-file

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

三元运算符的右手表达式必须兼容吗?

我的实践测试书包含关于三元运算符的这个问题:

// What is the output of the following application?
public class Transportation {
    public static String travel(int distance) {
        return(distance < 1000 ? "train" : 10);
    }
    public static void main(String[] args) {
        travel(500);
    }
}
Run Code Online (Sandbox Code Playgroud)

它不编译.给出的解释如下:

三元操作要求右手表达式都是兼容的数据类型.在此示例中,外部三元操作的第一个右侧表达式是String类型,而第二个右侧表达式是int类型.由于这些数据类型不兼容,因此代码无法编译,而选项C是正确的答案.

这是真的吗?在我看来,这个例子没有编译,因为10不是String,而String是方法必须返回的.我问,因为 System.out.println(distance < 1000 ? "train" : 10); 编译和运行没有问题.

java ternary-operator

13
推荐指数
2
解决办法
764
查看次数

以100 nsec粒度显示NTFS时间戳

据我所知,FAT文件系统以2秒的粒度存储文件的时间戳(修改日期等),NTFS以100纳秒的粒度存储它们.

我正在使用带有FileSystemObject的VBScript来显示文件详细信息.函数file.DateLastModified以1秒的精度显示日期(在NTFS上).

有没有办法根据NTFS的内部存储粒度显示精度的时间戳.我想象的是像8/9/2010 14:40:30,1234567

如果没有VBScript/FileSystemObject,还有其他方法吗?

vbscript timestamp ntfs granularity

5
推荐指数
1
解决办法
4309
查看次数

用于VBScript性能测量的细粒度计时器

我在VBScript中做了一些性能测量.我想测量算法的执行速度

t1 = Now()  
doAlotOfWork ()  
t2 = Now()  
MsgBox "Operation took " & DateDiff ("s", t1, t2)  & " seconds."
Run Code Online (Sandbox Code Playgroud)

这给了我几秒钟的时间.如果一个算法导致1秒执行时间而另一个算法导致2秒钟,这几乎不会给我任何有用的信息.我需要将问题大小炸成一段需要一分钟才能执行的东西.

有没有人知道在VBScript中进行这些测量的方法,但随后更精细.例如,引入毫秒的东西.

我觉得WMI必须有一个解决方案.

vbscript benchmarking timer

5
推荐指数
1
解决办法
2123
查看次数

“WMIC 进程”输出中没有用户名列

Windows 任务管理器的进程选项卡显示了几个包含信息的列,其中之一是拥有进程的用户的用户名。
使用命令 WMIC 进程(来自管理员启动的 cmd.exe)为我提供了相同类型的信息,但我找不到用户名的任何列。如何找出哪个用户使用 WMIC 启动了该进程?

wmic

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