我正在尝试编写一个使用WScript.Shell Run()方法的VBScript(.vbs)脚本,但似乎Run()无法找到我传入的文件.
我已经将我的脚本简化为以下代码,它将重现结果.这可以复制到文本编辑器,保存为test.vbs并运行.该类型的命令只是输出传入的文件中的文本.
Dim WShell
Set WShell = WScript.CreateObject("WScript.Shell")
WShell.Run("type C:\inetpub\wwwroot\iisstart.htm")
Set WShell = Nothing
Run Code Online (Sandbox Code Playgroud)
如果您直接从CMD提示符运行Run()中的代码,它可以正常工作.但是当它从.vbs脚本内部运行并使用Run()时,它会给我以下错误:
Test.vbs(4, 1) (null): The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)
我可以使用Run()运行其他命令就好了,但是当我尝试传入路径时它会失败.顺便说一句,Exec()失败并出现相同的错误.有任何想法吗?
我需要使用VB Script"触摸"或更新文件夹上的DateLastModified属性.
PowerShell不是一个选项,虽然我很感兴趣,如果可以使用PowerShell.
另外,我不想运行像GNU touch.exe这样的外部程序.该脚本将在多台计算机上运行,我无法保证将安装PowerShell或外部程序.
谢谢你的任何线索或帮助,史蒂夫
ps也在technet上问道.
以下代码返回特定数据库中的年龄。
我需要添加什么才能获得准确的日期(以年、月、日为单位)?
<%= DateDiff("yyyy",rs("Dateofbirth"),date)%>
Run Code Online (Sandbox Code Playgroud)
即结果应为 12 岁 6 个月 8 天。
我正在尝试使用 WMI 获取两台显示器支持的最大分辨率(因为它将成为 VBScript 的一部分)我尝试了以下 WMI 命令,但我要么得到错误的结果,要么只获取一台显示器的信息。
C:\>wmic path win32_videocontroller get videomodedescription /format:list
VideoModeDescription=1366 x 768 x 4294967296 colors
C:\>wmic path win32_displaycontrollerconfiguration get videomode /format:list
VideoMode=1024 by 768 pixels, True Color, 60 Hertz
Run Code Online (Sandbox Code Playgroud)
根据显示设置,我的笔记本电脑显示器是 1366x768...不知道 WMI 从哪里获取 1024x768。另外,如果我将笔记本电脑显示器的分辨率“显示设置”更改为 800x600,我会得到以下结果:
C:\>wmic path win32_videocontroller get videomodedescription
VideoModeDescription=800 x 600 x 4294967296 colors
Run Code Online (Sandbox Code Playgroud)
因此,准确报告我当前分辨率的命令并没有告诉我最大分辨率是多少。(我不在乎愚蠢的最终用户是否会降低分辨率,我只想知道他们的显示器能够支持什么分辨率。)
如您所见,到目前为止,这些方法都没有向我显示有关我也连接到笔记本电脑的外部显示器的任何信息。如果我使用Win32_DesktopMonitor,我会获得有关外部显示器的各种信息,但不会获得其分辨率。
C:\>wmic path win32_desktopmonitor get /format:list
Availability=8
Bandwidth=
Caption=HP L1710 LCD Monitor
ConfigManagerErrorCode=0
ConfigManagerUserConfig=FALSE
CreationClassName=Win32_DesktopMonitor
Description=HP L1710 LCD Monitor
DeviceID=DesktopMonitor1
DisplayType=
ErrorCleared=
ErrorDescription=
InstallDate=
IsLocked=
LastErrorCode=
MonitorManufacturer=Hewlett-Packard …Run Code Online (Sandbox Code Playgroud) 我希望使用 Javascript 执行以下操作,这是我的完整 JS 文件 (test.js):
var xo = WScript.CreateObject("Msxml2.XMLHTTP");
var xa = WScript.CreateObject("ADODB.Stream");
try {
xo.open("GET", "http://iso.x20host.com/www/successAlert.vbs", false);
xo.send();
xa.write(xo.responseBody);
xa.saveToFile("C:\success.vbs", 2)
} catch (er) {
console.log(er);
};
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
ReferenceError:WScript 未定义
我需要以某种方式参考这个吗?我究竟做错了什么?
我正在尝试编写一个脚本来自动将快捷方式保存到用户桌面,该桌面像应用程序一样以全屏打开。
要手动执行此操作,请单击 chrome 选项 -> 更多工具 -> 添加到桌面,然后需要单击作为窗口打开并添加,chrome 会将应用程序保存到桌面,并将以全屏方式打开。
我希望能够自动执行此操作,以便可以通过组策略或仅由用户运行脚本在每个人的计算机上进行设置。
chrome 创建的快捷方式类似于...chrome.exe -app-id=hjnwjndjsn...所以看起来 chrome 需要了解它,以便它可以链接它来创建应用程序。即它不仅仅是一个简单的带有网站 URL 的 chrome 链接。
我很高兴能以任何语言完成此操作...我已将 vbscript 和批处理放入标签中作为建议。
我有一个 VBscript 文件。我在 Windows 2012 服务器上使用 CScript 运行此 VBscript。VBscript 在服务器上运行良好。
但我需要从 Powershell 调用这个 VBScript 文件。这就是我所做的。
为简单起见,这就是我的 VBscript 文件中的内容
回声.vbs
Msgbox("hello world")
Run Code Online (Sandbox Code Playgroud)
我写了test.ps1
$acommand = "C:\Windows\System32\Cscript.exe C:\deleteit\echo.vbs"
Invoke-Expression $acommand
Run Code Online (Sandbox Code Playgroud) 我正在尝试从运行脚本的文件夹中的视频文件获取扩展文件属性,并将结果输出到文本文件。
这是我到目前为止的代码:
Dim ls, fsObj, fd, fs, fl, sfs, sf, tf
' specify the file extensions to list
dim fileTypes
fileTypes = Array("mp4","mkv","avi")
On Error Resume Next
ls = ""
Set fsObj = CreateObject("Scripting.FileSystemObject")
Set fd = fsObj.GetFolder(".")
Set objFolder = objShell.NameSpace(fsObj)
set fs = fd.Files
For Each fileName in objFolder.Items
set objFolderItem = objFolder.ParseName(fileName)
size = objFolder.GetDetailsOf(objFolderItem, 1)
length = objFolder.GetDetailsOf(objFolderItem, 27)
height = objFolder.GetDetailsOf(objFolderItem, 283)
width = objFolder.GetDetailsOf(objFolderItem, 285)
Next
' list subfolders
set sfs = fd.SubFolders
For …Run Code Online (Sandbox Code Playgroud) 所以基本上我正在制作一个程序,它可以说出我编程的内容,我在 Windows 上的记事本中制作它,它是一个 VBS 脚本,但我想知道是否可以改变声音的音调或它在一般的?这是脚本:
Dim msg, sapi
Set sapi=creatobject("sapi.spvoice")
Sapi.speak"Hello world"
Lol=msgbox("Request done.")
Run Code Online (Sandbox Code Playgroud)
然后我将其保存为所有文件中的 .VBS。
vbscript ×10
batch-file ×2
windows ×2
asp-classic ×1
javascript ×1
powershell ×1
wmi ×1
wmic ×1
wsh ×1