我偶然发现了一些创建弹出窗口的代码,您可以从中编辑文本,添加多行......
mshta javascript:alert("Line 1\n Line 2");close();
继续并启动命令提示符并输入该行。我想\ n意味着下一行,因为你可以添加/删除你想要的那些。
我的问题是,有没有办法使用相同的弹出窗口方法,但是没有一个按钮显示“OK”,请使用两个按钮,当您单击一个按钮时,您可以“转到”,然后单击另一方面,你“转到b”。
我也无法弄清楚如何修改我在上面发布的其他弹出窗口,将其从“HTML APPLICATION”更改为其他标题,并将“OK”按钮重命名为其他内容。无论哪种方式,这都不是重点,而只是好奇心。
编辑:在我上一篇评论中,关于关闭脚本,我发现我可以抛出
;close();
在括号末尾。但是如何在批处理脚本中将true / false设置为变量?
编辑:我已经决定autoit是一种更好的语言。投票结束。
答案 0 :(得分:4)
好的,首先让我解释一下你的例子中发生了什么。当您输入时:
mshta javascript:alert("Line 1\n Line 2");close();
你实际在做的是告诉你的电脑:
运行名为mshta.exe的程序,并将以下 javascript 作为参数传递给它
您可以使用任何程序执行此操作,例如,尝试使用名为“banana.txt”的新文件打开记事本,方法是键入:
notepad banana
请注意,这两种情况几乎与批次无关。在您的示例中,mshta.exe只运行一些javascript来打开警报窗口,就像在我的示例中一样,notepad.exe处理.txt文件的创建。
好的,现在我们已经解决了这个问题,转到你的实际问题:有没有办法批量编写脚本会打开一个弹出确认窗口?
你问题的简单答案是否定的。批处理非常好 [citation needed] 在移动目录,打开文件/程序,以及......就是这样。如果您需要执行不在该列表中的任何,您应该使用不同的脚本语言。
然而,虽然我无法强调你的问题的正确答案是多少,但我认识到这不是一个非常令人满意的答案,所以我会说,如果你绝对 拥有一个批量解决方案,我会做类似以下的事情:
@echo off
echo code=Msgbox("I'm A Message Box!", vbYesNo, "I'm The Title!") > "%temp%\popupBox.vbs"
echo WScript.Quit code >> "%temp%\popupBox.vbs"
cscript /nologo "%temp%\popupBox.vbs"
if %errorlevel%==6 call :ok_tag
if %errorlevel%==7 call :cancel_tag
echo Done!
exit /b 1
:ok_tag
echo You pressed Yes!
exit /b
:cancel_tag
echo You pressed No!
exit /b
此代码基本上通过创建和运行临时vbscript文件(另一种脚本语言)来解决您的问题,该文件的作用是为您显示确认窗口,然后使用 脚本中的退出代码确定点击了哪个按钮。
再次注意这比仅仅在纯vbscript中编写程序要多得多和复杂,但是如果你必须有一个.bat文件,那么你应该有一个.bat文件。
答案 1 :(得分:2)
@echo off
for /f "usebackq" %%f in (
`mshta "javascript:new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(new ActiveXObject('WScript.Shell').PopUp('Select one',0,'Title',36));close();"`
) do (
if "%%f"=="6" (
echo YES
) else if "%%f"=="7" (
echo NO
) else (
echo ????
)
)