新的脚本语言
我正在尝试自己创建脚本语言(这不一定是完美的 - 尽管那会很棒)创建等. 根据答案:创建脚本语言要研究以下是:有人可以帮忙吗? P.S. 是否有针对Windows脚本主机的免费/开源脚本语言,它也可以使用完整的源代码? 谢谢 解决方案 如果您是为了娱乐而这样做,并了解如何创建语言,我建议您远离Windows脚本主机.,请尝试从更好的示例中学习.一个很好的第一步是让自己开始访问我希望我可以推荐一本关于设计和实施自己的编程语言的好书.我从未见过. (我已经看过一些不好的书,但不想不尊重作者,我不会识别它们.)但是,如果您可以在一个好的大学图书馆里度过一段美好的时光文件.您可能还会发现值得检查我们的弗里德曼(Friedman)和魔杖(Wand)的书编写交互式编译器和口译员 . 其他解决方案 使简单脚本插图的宽松方式是通过将界限字符划分为阵列中的源代码,然后循环通过每个成员.这是一个例子 字符串源= @" 打印Hello World! 停止 "); foreac
4 2024-04-25
编程技术问答社区
未定义的属性:stdClass::$GetDataResult 错误信息
我正在使用PHP SOAP客户端功能使用此代码连接远程服务 try { $result = $soapClient->GetData($parameters); } catch (SoapFault $fault) { echo "Fault code: {$fault->faultcode}" . NEWLINE; echo "Fault string: {$fault->faultstring}" . NEWLINE; if ($soapClient != null) { $soapClient = null; } exit(); } $soapClient = null; 最后,我正在调用此功能, echo "Return value: {$result->GetDataResult}" . NEWLINE; ,但这对我不起作用,并收到这样的警告消息. Notice: Undefine
20 2024-04-23
编程技术问答社区
在不使用 WScript.Sleep 的情况下使用 CopyHere 写入文件
我已经写了一个小的vbscript来创建.zip文件,然后将指定文件夹的内容复制到该.zip文件中. 我是因为某种原因将文件复制到一个一个一个,(我知道我可以一次做很多事情).但是,我的问题是,当我尝试一个不wscript的情况下,尝试一个循环迭代之间的睡眠时,我会收到"未找到文件或未读取许可".错误;如果我在每次写作后都放置WScript.Sleep 200,但没有100%的时间. 我几乎想摆脱睡眠功能,而不是依靠它,因为取决于文件大小可能需要更长的时间才能编写,因此200毫秒可能还不够. 您可以看到下面的一小部分代码,我循环遍历文件,然后如果它们匹配扩展名,则将它们放入.zip(zipfile) For Each file In folderToZip.Items For Each extension In fileExtensions if (InStr(file, extension)) Then zipFi
14 2024-04-22
编程技术问答社区
Python,使用两个路径和参数创建快捷方式
我正在尝试通过python创建一个快捷方式,该快捷方式将在另一个程序中使用参数启动一个文件.例如: "C:\file.exe" "C:\folder\file.ext" argument 我尝试过的代码: from win32com.client import Dispatch import os shell = Dispatch("WScript.Shell") shortcut = shell.CreateShortCut(path) shortcut.Targetpath = r'"C:\file.exe" "C:\folder\file.ext"' shortcut.Arguments = argument shortcut.WorkingDirectory = "C:\" #or "C:\folder\file.ext" in this case? shortcut.save() 但我遇到了一个错误: AttributeError: Propert
22 2024-04-22
编程技术问答社区
创建文件夹名称包含 unicode 字符的快捷方式
我一直在使用以下代码动态创建快捷方式.但是,当文件夹名称具有Unicode字符(如泰语,希腊语言)时,目标路径会引发参数异常. IWshRuntimeLibrary.WshShell shell = new WshShell(); IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutLocation); shortcut.Description = "My shortcut description"; // The description of the shortcut shortcut.WorkingDirectory = currentPath; shortcut.TargetPath = targetFileLocation; // The path of the file that will launch when the shortcut is run
14 2024-04-22
编程技术问答社区
在 vbscript 中自动关闭 MsgBox?
我正在使用vbscript在Excel上编码一些自动化.我在代码中有一个MsgBox(),并且正在寻找一种通过无人干预而自动关闭MsgBox()创建的弹出窗口的方法.程序执行将从那里继续. 解决方案 我的评论为您提供了搜索和找出可行答案的提示.但是,为了节省您的时间,这里有一些见解. 这篇文章显示了您如何/a>. 这是任何人在VBA方面都能想到的最佳方法. 创建一个表格 将其用作MSGBOX 添加一个计时器 给定经过的时间(空闲)关闭表格. - 另一种方法参考.这将Pop-Up框用作msgbox. 代码: Sub Test1() Dim AckTime As Integer, InfoBox As Object Set InfoBox = CreateObject("WScript.Shell") AckTime = 3 Select Case InfoBox.Popup("Click OK or do nothing w
10 2024-04-22
编程技术问答社区
获取我的ip地址
我在一个小网络上有一台计算机,所以我的IP是192.168.2.100. 我正在尝试获取我的真实IP.我下载了no-ip客户端,但这似乎很简单. 我创建了这个PHP脚本,该脚本获得了 http://www.ip-adress.com/页面并检索给我的IP. 有更简单的方法吗?使用C,WSH或其他东西.或者,如果PHP有更简单的方法,请告诉我. 当我获得IP时,我会将其上传到我的FTP网站,以便可以从工作中看到IP. 解决方案 不,真的没有一个简单的方法.您的计算机确实不知道它的后面IP-它与公共互联网之间可能有许多层.它所知道的是,它在192.168.2.100接收消息,并通过网关192.168.2.1发送消息.它不知道数据包撞到网关后会发生什么. 其他解决方案 请注意重新发明轮子,有一个标准协议,Stun (已经存在的实现),只是为此.另请参见 .. 其他解决方案 不是您所要求的,但仍然适用于您想要的东西.我在家用计算机上设置了一个Gma
14 2024-04-06
编程技术问答社区
使用wsh脚本检查和打开不同的浏览器
大家好,我知道这听起来很愚蠢,但是我脑海中遇到了这个问题...我真的是这个wscript或vbscripting的新手....在写作时,我弄清楚了如何使用IE使用IE wscript ... Heres代码 Set WshShell = WScript.CreateObject("WScript.Shell") Return = WshShell.Run("iexplore.exe www.bbc.co.uk", 1) 但是我无法弄清楚如何检查是否安装了Firefox,然后打开Firefox,如果安装了铬 更新: 我做了一些研究,并想到为什么不检查注册表,所以我想出了此脚本检查注册表,现在我不知道为什么,但是这总是给出相同的输出"密钥不存在"事件我的系统中有此注册表 keyTest = keyExists("HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox") If keyTest = False Then
14 2024-04-04
编程技术问答社区
如何用vbs启动系统文件检查器工具
在批处理或cmd中,sfc.exe用简单命令运行: %windir%\system32\SFC.exe /SCANNOW 如何使用.vbs脚本(x86 x64)?? 运行此命令 谢谢 解决方案 您可以做这样的事情,只需尝试一下! Option Explicit ' Run as Admin If Not WScript.Arguments.Named.Exists("elevate") Then CreateObject("Shell.Application").ShellExecute WScript.FullName _ , WScript.ScriptFullName & " /elevate", "", "runas", 1 WScript.Quit End If Dim ws,MyCommand,Execution Set ws = createobject("wscript.shell") MyCommand = "SFC
4 2024-03-29
编程技术问答社区
VBScript和批处理文件在由任务调度器运行时失效
我有一个vbscript,可以检查MS Word是否在隐藏中运行,使其可见,然后再隐藏. 这是我双击Explorer中的文件时可以正常工作的脚本代码: dim oWord Dim wshShell, btn Set wshShell = WScript.CreateObject("WScript.Shell") set oWord = getobject(, "Word.Application") if isobject(oWord) then on error goto 0 wshShell.Popup "Word is running, making visible", 7, "ALPS Push print", &H0 + &H40 oWord.visible=true wshShell.Popup "MS Word is now visible" & vbcrlf & vbcrlf & "Waiting 30 seconds th
8 2024-03-29
编程技术问答社区
如何使用Windows任务调度程序执行cscript?
问题:当我双击时,单击.bat文件时,它会按预期执行.当我在Windows任务调度程序中安排它时,它将执行,除了具有CScript的行以外. .bat文件的内容: @echo off cls cscript CSV_To_Excel.vbs c:\tableaudata\test.csv c:\tableaudata\test.xlsx echo.file converted >>log.txt 让我失望的是创建log.txt,表明正在执行.bat文件.但是不是创建.xlsx.但是,在手动双击.bat上都创建了log.txt和test.xlsx. 有什么问题? 解决方案 已解决!在Windows任务调度程序中我必须单击"更改用户或组"按钮并添加"管理员"组. 其他解决方案 要帮助调试情况,请在CScript命令行的末尾添加以下内容: >>c:\MyCScriptOutput.txt 2>&1 然后,检查C:\ mycscriptOutpu
6 2024-03-29
编程技术问答社区
在批处理中无法识别'cscript&39;。
我需要调用.vbs的.bat.当我从命令提示符中运行finddir.vbs时,可以是可以的,但是当我尝试从allowvbs.bat中调用它时,我收到了错误消息. 'cscript'不被认为是内部或外部命令. 我要使用的代码与.bat和命令提示. 相同. cscript FindDir.vbs 两个文件都在同一文件夹中. 我不明白为什么cscript命令在命令提示符中起作用,而在.bat中不工作.谁能解释我为什么会发生? 谢谢 解决方案 错误我正在使用一个带有名称"路径"的变量,因此CScript停止工作. 我用这个 其他解决方案 非常简单地解决此问题. 但是在此之前,您必须确保cscript.exe文件存在于c:\ windows \ system32路径中.然后, %SystemRoot%\ System32 \然后您的命令行 其他解决方案 确保您在System32文件夹中具有 cscript.exe . 然后单击
4 2024-03-29
编程技术问答社区
从javascript中运行一个bat文件
我正在尝试使用JavaScript运行BAT文件.我已经尝试使用PowerShell,但似乎无法正常工作.这是我尝试的代码: var oShell = WScript.CreateObject("WScript.Shell"); oShell.Exec("D:"); oShell.Exec("cd dir"); oShell.Exec("start user.bat"); 我也尝试过: var oShell = WScript.CreateObject("WScript.Shell"); oShell.Exec("start D:\dir\user.bat"); 有时它会运行,有时我会遇到"预期的十六进制数字","访问被拒绝". 我真的很困惑.我要做的就是从JavaScript文件执行BAT文件. 有人知道该怎么做吗?谢谢! 解决方案 首先,JavaScript没有任何操作系统服务.因此,您确实是指恰好用JavaScript编写的Windows脚本主机(
8 2024-03-29
编程技术问答社区
有什么办法可以直接在wscript或cscript命令行上运行vbscript?
我想像批次调用一样从命令行运行一个vbs命令 cmd.exe /c "echo.Hello World! & pause" 显然这不起作用 wscript /C MsgBox("Hello world") 我可以打印VBS,然后调用临时文件,然后删除 cmd.exe /c "echo. [VBSCODE] > temp.vbs & wscript temp.vbs & del temp.vbs" 但这太凌乱了,我不想提示弹出. 解决方案 这直接在命令行上工作: mshta vbscript:Execute("MsgBox(""Message"",64,""Title"")(window.close)") 也用于多个命令: mshta vbscript:Execute("MsgBox ""Message"",64,""Title"":MsgBox ""Hello again!"",64,""Hello"":close") 其他解决方
6 2024-03-29
编程技术问答社区
.bat用于批量重命名以增加fname中的数字
我有一个.cbr的大文件夹,我正在按发行编号重命名它们以正确订购它们.我需要在REN行中包含什么才能通过Windows命令提示符将每个文件通过文件名中的数字增加?我会经常这样做,所以我将其制作一个.bat文件. 例如,其中n =初始数字和m =最终数:n.cbr,(n+1).cbr,...,(m-1).cbr,m.cbr .bat susfar: ren *.cbz *.cbr ren *.cbr .cbr 另外,如何修剪每个文件名,以便在扩展程序之前仅保留数字? (从发行1.cbr到1.cbr)通过.bat或脚本主机文件? 解决方案 尝试此批次脚本. @echo off setlocal enabledelayedexpansion set /a count=0 for /f "tokens=*" %%a in ('dir /b /od *.cbr') do ( echo ren "%%
12 2024-03-29
编程技术问答社区
在javascript中设置一个环境变量
如何在WSH JScript文件中设置一个调用另一个程序的环境变量?这是减少的测试用例: envtest.js ---------- var oShell = WScript.CreateObject("WScript.Shell"); var oSysEnv = oShell.Environment("SYSTEM"); oSysEnv("TEST_ENV_VAR") = "TEST_VALUE"; oExec = oShell.Run("envtest.bat", 1, true); envtest.bat ----------- set pause 我希望在变量列表中看到test_ env _var,但不存在.怎么了? 编辑: 如果某人可以制作工作代码样本,我将标记为正确的答案. :) 解决方案 问题不在您的代码中,而是在执行过程中.完整的系统变量分配给执行的过程.因此,您的孩子过程也具有相同的变量. 您的代码样本效果很好.它将变量添加
6 2024-03-29
编程技术问答社区
是否可以从批处理文件或cmd脚本中向DLL搜索路径添加一个目录?
msdn说函数 dll搜索路径.可以从批处理文件或CMD脚本访问此功能/a>? 目的是让我们的开发版本的dll在一个预先存在的较旧的windir%等.而不必为此编写程序. 解决方案 您可以将DLL与可执行文件相同的路径放置,该路径在%WINDIR%之前先搜索.无法直接从批处理文件调用SetDllDirectory. 但是,您可以将DLL目录插入%PATH%变量,然后Windows将在此处找到DLL. set PATH=C:\path to your dll;%PATH% 其他解决方案 目的是建立我们的发展 在一个之前找到的DLL的版本 预先存在的年龄较大的windir% 等无需编写程序 只是为此. 如果DLL不在同一文件夹中,可执行的窗口将在系统路径中指定的文件夹中搜索文件.因此,您需要做的就是将文件夹放在路径的开头. 您可以使用以下批处理命令来执行此操作: set PATH=c:\MyDLLFolder;%PATH% 如果您的
8 2024-03-29
编程技术问答社区
我如何从命令行设置时区?
如何从命令行或批处理文件中设置Windows中的时区? 我需要使用powershell或cscript吗? 解决方案 命令行实用程序可帮助您更改Windows 7中的时区为tzutil.exe,被称为 Windows时区域实用程序.对于所有喜欢从命令提示中工作的人来说,这是一个很好的工具. 使用/s参数到 set 时区: tzutil /s "universal standard time" 使用/g参数到 get 时区: tzutil /g 使用/l参数到列表有效时区. tzutil /l 其他解决方案 如果有人仍然使用Windows XP(就像我一样): 步骤1: 您可以使用以下命令行,例如在"执行"窗口(CMD)中: Control.exe TIMEDATE.CPL,,/Z W. Europe Standard Time 对于西欧来说," W.欧洲标准时间"并不是很奇怪. 其他可能的值是 e.欧洲标准时
18 2024-03-29
编程技术问答社区
如何在Windows 10上用CSCRIPT使用ANSI转义序列?
我正在尝试使用带有CScript(JScript)的Windows 10控制台中可用的新的VT100 ANSI逃生序列功能.但是我无法工作. 这是一个非常简单的JScript脚本: test.js WScript.Echo('\x1B[7mReverse\x1B[0m Normal'); WScript.stdout.WriteLine('\x1B[7mReverse\x1B[0m Normal'); 我已经完成了许多测试,直接写入屏幕时,CScript输出的逃生序列无能为力,并且仅在首先写入文件然后打字时工作,否则会被for/f捕获并回声. 我有两个问题: 1)为什么直接写入CScript的控制台工作? 2)如何直接写入工作? 我想将文本突出显示到我的查找/替换实用程序(因此, 解决方案 MS Documentation 状态 以下终端序列被控制台主机拦截 如果写入输出流,如果 enable_virtual_terminal_proce
8 2024-03-29
编程技术问答社区
一个可以搜索文件的.bat或.wsh脚本
我正在寻找一些可以执行以下操作的.bat或.wsh脚本的示例: 用户提供的扩展名(.dll,.exe等)在目录中递归读取文件名 搜索以上文件名称的用户提供的目录 生成发现结果的TXT或XLS报告,例如:X.TXT在" C:\ temp"," C:\ blah" 中找到 tia. 编辑: 糟糕,我应该澄清:这里有两个目录和两个搜索. 搜索1: 搜索用户为所有 *.dll提供了目录" dir 1". 搜索2: 搜索其他用户提供了目录" dir 2"的目录. 因此,如果搜索1在dir 1中找到foo.dll,foo2.dll和foo3.dll,则搜索2应该在dir 2中查看foo.dll,foo2.dll和foo3.dll,并提供一个报告(简单每个发现的文件的清单). 解决方案 将以下内容放在.bat文件中,例如FindAll.bat: @echo OFF for /f %%F in ('dir %2\%1 /s /b
6 2024-03-29
编程技术问答社区