标签: batch-file

在 bat 文件中等待几秒钟的更好方法?

可能的重复:
如何在批处理文件中休眠?

这是在批处理文件中暂停一秒钟的 haxxorish 方式:

PING 400.500.600.700 > NUL
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索过,但我不确定有没有更好的……有什么想法吗?:)

windows batch-file

14
推荐指数
2
解决办法
13万
查看次数

命令行 - 批处理文件调用另一个批处理文件

我有一个批处理文件,它调用 PATH 目录中存在的另一个批处理文件(基本上是调用带有附加开关的可执行文件。)

: bar.bat:
foo.bat file1.txt
foo.bat file2.txt
etc.
Run Code Online (Sandbox Code Playgroud)

在 foo.bat 中:

foo.exe -t -s %1
Run Code Online (Sandbox Code Playgroud)

bar.bat执行第一个命令但立即退出(即仅处理file1.txt)。

我怎样才能让这个批处理文件多次调用另一个批处理文件?

command-line-interface batch-file

13
推荐指数
1
解决办法
6279
查看次数

执行时不显示批处理文件命令?

当我在 cmd 屏幕上执行批处理文件时,批处理中的命令出现在屏幕示例上:-

批处理文件:- @echo off. command1 command2

当我在 cmd 上执行它时,屏幕上会出现以下内容:- c:\user > command1 c:\user >command2

当我执行批处理文件时我没有出现任何东西

windows batch-file

13
推荐指数
2
解决办法
6万
查看次数

MSIZAP 仍然有用,还是已经过时了?

我使用组策略安装的 MSI 文件更新闪存。但是,每次更新时,大约有三分之一的工作站无法更新(Windows Vista 和 Windows 7 32/64 位版本)。在事件日志中,会出现以下消息:

“Adobe Flash Player 11 ActiveX -- 错误 1714。无法删除旧版本的 Adob​​e Flash Player 11 ActiveX。请联系您的技术支持组。系统错误 1612。”

我能够解决该问题的唯一方法是使用Microsoft Fit It 工具。但是,这是一个非常耗时的过程,每个工作站手动执行大约需要 15 分钟,因此每次出现闪存更新时,它都会有效地杀死一整天。

我遇到了这个脚本,其中包含 MSIZAP 来删除失败的闪存卸载。所以,我的问题是:MSIZAP 实用程序是以编程方式删除闪存的最佳方法,还是在这一点上已经过时?我问的原因是我找到的关于这个主题的大部分书面材料都是 2009 年或 2010 年的。

@echo off
SET MSIZAP=\\my.domain.com\netlogon\bin\msizap.exe
SET DFSPATH=\\my.domain.com\dfsroot\Packages\Adobe

SET UNINSTALL=%DFSPATH%\uninstall_flash_player_x86.exe
SET INSTALL=%DFSPATH%\install_flash_player_11.4.402.278_active_x.exe 

rem Detect 64-bit Windows
IF NOT "%ProgramFiles(x86)%"=="" SET WOW6432NODE=WOW6432NODE\

SET VER_FLAG_KEY=HKEY_LOCAL_MACHINE\SOFTWARE\%WOW6432NODE%Macromedia\FlashPlayer
SET VER_FLAG_VALUE=11,4,402,278

REG QUERY "%VER_FLAG_KEY%" /v CurrentVersion | find /i "%VER_FLAG_VALUE%" > NUL 2>NUL
if errorlevel 1 goto …
Run Code Online (Sandbox Code Playgroud)

windows-server-2008 group-policy batch-file uninstall

13
推荐指数
1
解决办法
5438
查看次数

将 Windows 命令的输出存储在批处理文件中

我需要将命令行的输出存储在一个变量中。我怎样才能做到这一点?

windows command-line-interface batch-file

12
推荐指数
2
解决办法
9万
查看次数

在没有用户登录的情况下从任务计划程序运行批处理文件

我正在尝试从任务计划程序在 Windows 7 上运行批处理文件。如果我从命令提示符运行批处理文件,我可以很好地运行它。

如果我从 Task Scheduler 运行它以仅在用户登录时运行,则该任务将毫无问题地运行。但是,当它在用户未登录的情况下运行时,任务计划程序看起来像是在运行文件,但没有任何反应。

我已经尝试将批处理文件更改为以下行,以确保它不是因为批处理文件中的内容:

echo "success" >> c:\temp\test.log
Run Code Online (Sandbox Code Playgroud)

这不起作用。有任何想法吗?我让它以最高权限运行,并且使用对批处理文件和写入文件的文件夹具有完全权限的管理员帐户。

windows-7 batch-file

12
推荐指数
1
解决办法
8万
查看次数

Windows 批处理文件是否具有 %* 结构?

在批处理文件中,我是否必须执行(例如)以下操作?

@echo off
call other.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
Run Code Online (Sandbox Code Playgroud)

scripting windows batch-file

11
推荐指数
2
解决办法
1万
查看次数

如何在批处理文件中设置全局 PATH 环境?

每次我登录时,我们环境中的组策略都会覆盖 PATH 变量,并且当我运行“非标准”计算机时,它完全错误(C:\Windows vs C:\WINNT,缺少目录等)。目前,我每次登录时都会手动更改它,但这开始变得令人厌烦。

如果我使用 SET 命令更改批处理文件中的 PATH 变量,它仅具有本地范围,因此更改仅适用于批处理文件中的命令。

set PATH=C:\WINNT;C:\WINNT\System32
set PATH
Run Code Online (Sandbox Code Playgroud)

这个批处理文件将输出新路径,但如果我set PATH之后在命令行上运行,它仍然是原始路径。

如何在批处理文件中设置全局PATH 环境?或者我可以使用另一种技术吗?

windows batch-file environment-variables path

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

要卸载所有 Sun Java 版本的批处理文件?

我正在建立一个系统来使我们办公室中的 Java 保持最新。每个人都有不同版本的 Java,其中许多版本很旧且不安全,有些甚至可以追溯到 1.4。我有一个 System Center Essentials 服务器,它可以推出并静默运行 .msi 文件,我已经测试过它可以安装最新的 Java。但是安装程序不会删除旧版本(例如 1.4),因此我需要卸载它们。每个人都在运行 Windows XP。

巧合的是,Sun 刚刚被 Oracle 收购,Oracle 现在已经将 Java 中所有“Sun”的实例更改为“Oracle”。因此,我可以方便地不必担心卸载最新的 Java,因为我可以搜索并卸载所有Sun Java 程序。

我在一个看起来很有希望的论坛帖子上找到了以下批处理脚本:

@echo off & cls
Rem List all Installation subkeys from uninstall key.
echo Searching Registry for Java Installs
for /f %%I in ('reg query HKLM\SOFTWARE\microsoft\windows\currentversion\uninstall') do echo %%I | find "{" > nul && call :All-Installations %%I
echo Search Complete..
goto :EOF
:All-Installations
Rem Filter out all but the …
Run Code Online (Sandbox Code Playgroud)

windows java batch-file msi

11
推荐指数
2
解决办法
5万
查看次数

通过 .bat 文件提升 UAC?

很简单,我很难找到答案。

serverfault之前帮助我找到了一种无需使用 WSUS 即可自动更新 Windows 的方法。它工作得非常好,但是要通过网络运行它,您必须先安装共享驱动器。这是非常简单的 XP,因为您只需安装驱动器并运行更新程序。

但是,在 Vista 和 W7 上,这一切都必须通过提升的权限才能正常工作。UAC 帐户无法看到普通用户安装的网络驱动器,因此为了让一切正常工作,我必须通过net use升级的 shell安装共享。我想通过一个简单的 .bat 文件自动安装此共享并启动更新程序。

我可能只是指示每个人右键单击 .bat 文件上的“以管理员身份运行”,但我想让事情尽可能简单,并让 .bat 自动提示用户提升他们的权限。

由于这些计算机不属于我们,我不能指望安装 Powershell 之类的任何东西,因此这将限制任何解决方案,并且几乎必须依赖于 RTM Vista 安装中包含的内容。我希望我在这里遗漏了一些明显的东西。:)

uac batch-file

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