【发布时间】:2013-12-10 08:21:46
【问题描述】:
好吧,我有点不明白。它可能已经在这里的某个地方,但我很难向自己解释它,所以我也很难搜索它。
事情并不复杂,只是对我来说不合逻辑。我正在尝试在 Powershell 中设置一个脚本,该脚本主要进入一个文件夹并获取所有*.exe files 的版本。像这样效果很好:
dir 'C:\Program Files (x86)\SPN'| Get-ChildItem -Recurse -Include '*.exe' |%{$_.VersionInfo} | select FileName, FileVersion | Format-Table -Autosize | Out-file c:\test.txt
这很简单,因为它所做的只是进入文件夹,递归搜索 exe 文件,取出 VersionInfo,然后选择 FileNames 和 Versions,然后将其放入文件中,以报告安装的版本。它也有效!
问题有点复杂。我们使用htm\vbs application 来运行脚本。主要是这意味着我们所有的脚本,无论是vbs, batch, or powershell,都是通过这个平台运行的。有时我们也会通过一个由 vbs 脚本启动的批处理文件来运行 powershell。
当我启动 powershell 并运行上面的脚本时,会输出带有我所追求的信息的文件,当我启动 cmd 并运行 powershell 脚本时,我会得到一个没有版本的应用程序列表。 vbs 也是如此。
所以我想我会更深入。我启动了一个 cmd,然后输入 start powershell 以通过这种方式获得一个新窗口,但是唉,我仍然只获得 filenames and no versions! 获得版本的唯一方法是通过 Powershell 自行运行脚本。 (这意味着我必须手动打开 Powershell,因为右键单击并选择 Run with Powershell 会给出名称,并且没有版本)
欢迎任何建议和想法。
谢谢。
【问题讨论】:
-
好吧,深入挖掘我发现它确实有效。 cmd的问题实际上是屏幕上没有空间。添加“mode con: cols=145”解决了这个问题。我还没有尝试在 vbs 中解决它,但我想它可能是类似的。结案。 - 猜我无法关闭它;)无论如何我都找到了答案。
标签: powershell batch-file vbscript cmd