我写了一个bat文件,怎么老是弹出cmd.exe这个黑色背景框

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我写了一个bat文件,怎么老是弹出cmd.exe这个黑色背景框相关的知识,希望对你有一定的参考价值。

我写了一个bat文件,如下:
explorer.exe open=http://www.baidu.com

点击后,怎么老是先弹出cmd.exe这个黑色背景框的东东,可不可以让cmd.exe这个黑色背景框东东不要弹出来?或着有什么代码,直接打开网页

不知道你最近有没有杀毒,有的病毒会修改cmd文件,杀毒软件就会把它删除。
如果没有的话,试试下面的方法:
运行输入gpedit.msc回车打开组策略,在左侧选用户配置/管理模板/系统/在右侧选“阻止访问命令提示符”双击它,在打开的对话框中选择“未配置”按应用和确定。在右侧还有一项“不要运行指定的windows应用程序”,双击它在“显示”中查看有没有一个名为“cmd.exe”如果有将它删除,按确定和应用。
重启!
参考技术A 不要用bat类型的文件,bat类型的文件,运行时都会黑色背景的窗口的。

用vbs文件也可以的哦。

打开记事本,复制以下代码,粘贴到里面,再另存为扩展名为.vbs的文件,比如在另存为对话框中输入 c:\test.vbs
文件就被保存到c盘根目录下的test.vbs文件了,双击它就可以打开网页了

Dim obj
Set obj = WScript.CreateObject("wscript.shell")
obj.run "http://www.baidu.com"
参考技术B 你在前面加上一句,
这样子写就行了。
@echo off
echo off explorer.exe open=http://www.baidu.com本回答被提问者采纳
参考技术C 和批处理一样,只是把下面代码保存的后缀名为 vbs

set ie=createobject("internetexplorer.application")
ie.visible=1
ie.navigate "http://www.baidu.com"
参考技术D @echo
start explorer.exe open=http://www.baidu.com

获取文件名 bat

【中文标题】获取文件名 bat【英文标题】:Get a filename bat 【发布时间】:2013-03-15 18:06:07 【问题描述】:

我是 BAT 写作新手。 我正在尝试编写一个批处理文件,它将检查文件是否高于或低于特定大小,然后相应地发送电子邮件。我写了一些可以用静态文件名做到这一点的东西

@echo off
setlocal
set file="ssoff.bat"
set maxbytesize=1000

FOR /F "usebackq" %%A IN ('%file%') DO set size=%%~zA

if %size% LSS %maxbytesize% (
    echo.File is ^< %maxbytesize% bytes
    blat -server mail.omers.com -f checker@omers.com -t rplomp@omers.com -s "filesize less than" -body testbody 
) ELSE (
    echo.File is ^>= %maxbytesize% bytes
    blat -server mail.omers.com -f checker@omers.com -t rplomp@omers.com -s "filesize greater than" -body testbody
)

在这种情况下,被检查的文件名是ssoff.bat。但是,我需要让 bat 检查根据日期每天更改的文件名。文件名的掩码使用日期字符串 IE:deployEAR_restartWAS_03132013.log ; deployEAR_restartWAS_03142013.log ... 等等 - 最后 8 个字符反映生成的日期。 bat 需要检查该目录中的最新文件。今天应该是deployEAR_restartWAS_03152013.log

此日志文件也不在父目录中。

我想也许让 bat 将最新文件从该目录复制到父目录,然后检查其大小?或者使用文件名'deployEAR_restartWAS_' 的静态部分,然后通过date 变量传递它的最后一部分? 但我不确定哪种方法最好,而且我敢肯定还有其他我没有想到的方法。

bat 文件的运行时间与文件名末尾的日期变量是同一天。

【问题讨论】:

为什么要分批? powershell 或 c#/vb 控制台应用程序会容易得多。 批处理脚本已经过时了。对于您在 powershell 甚至 vbs 中开始的需求,将会变得非常容易且不那么复杂。两种脚本语言都具有丰富的 SMTP 库和函数,以及完整的文件函数,具有很好的可读性。 @Dan-o 你在我写上面的时候写的。很高兴你有同样的想法。 【参考方案1】:
for /f %%i in ('dir /b /a-d /od deployEAR_restartWAS_*.log') do set name=%%i&set size=%%~zi
echo latest file is %name% size %size%

从您的描述中无法确定这组.log 文件位于哪个目录中。你告诉我们它不会在the parent directory 中,你唯一的参考似乎是that 目录。

如果.log 文件不在当前目录中,您只需将目录名称添加到deploy...,即:Q:\wherever\it\maybe\deployEAR_restartWAS_*.log,或者,如果文件的路径包含空格,请引用名称:@ 987654328@

【讨论】:

你领先我一分钟。我有一个类似的想法,除了按日期而不是按名称排序。 FOR /F %%A IN ('dir /b /o:d "path\to\*.log"') DO set size=%%~zA,除了 "usebackq" 选项,我无法在评论中轻松说明...... 哦,不 - 你完全正确 - 它 SHOULD 按日期排序,因为日期部分按 MMDDYYYY 顺序分配。 OP:答案已更正为按日期排列,而不是按名称排列。但是,如果可以的话,将日期字符串用作 YYYYMMDD 是标准做法,因为它们可以通过简单地按字母顺序排序来分类为日期序列。

以上是关于我写了一个bat文件,怎么老是弹出cmd.exe这个黑色背景框的主要内容,如果未能解决你的问题,请参考以下文章

bat文件找不到

bat后缀的文件全都打不开是怎么回事?

强制 bat 文件使用非默认的 cmd.exe

如何把bat文件的输出结果放到txt文件中

python自动运行cmd,bat文件

BAT 文件:打开新的 cmd 窗口并在其中执行命令