标签: batch-file

批处理文件、PING、errorlevel 和 > null 它们是做什么的?

这似乎是一个非常简单的问题(运行 Windows 7)。但我一直在寻找答案,但在微软的网站(XP PING一切 PING)或一堆谷歌搜索中找不到任何东西。

我正在学习 DOS/批处理文件。我的开始代码是 PING 一个服务器。

如果我在命令提示符中输入它,它运行良好,并给我一些结果

PING -n 1 Server04
Run Code Online (Sandbox Code Playgroud)

结果:

Pinging Server04.aaaa.xxxx.net [x.x.x.x] with 32 bytes of data:     
Reply from x.x.x.x: bytes=32 time=1ms TTL=125
Run Code Online (Sandbox Code Playgroud)

如果我在批处理文件中运行它,它永远不会停止,但 -n(或 /n)应该只发送一次 PING,并且 PAUSE 也应该停止并保持 cmd.exe 窗口打开。

PING -n 1 winsvmnsdev04
PAUSE
Run Code Online (Sandbox Code Playgroud)

结果:

C:\Users\Me\Desktop>PING -n 1 Server04
C:\Users\Me\Desktop>PING -n 1 Server04
C:\Users\Me\Desktop>PING -n 1 Server04
Continues until I use Ctrl + C
Run Code Online (Sandbox Code Playgroud)

我查看了一堆问答,其中许多包含“errorlevel”来回应响应,而有些则包含尾随的“> null”。在试图理解时,我已经查看了这些都没有在 Microsoft 库中列为“PING”的属性。

当我跑

PING -n 1 winsvmnsdev04 > null
PAUSE
Run Code Online (Sandbox Code Playgroud)

或者运行

PING …
Run Code Online (Sandbox Code Playgroud)

windows-7 batch ping batch-file

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

Windows 脚本可在不删除任何现有字符串值的情况下切换自动配置脚本复选框

我正在尝试创建一个 bat 文件来切换 Internet Explorer 中的自动配置脚本复选框(请参阅屏幕截图中的红色框)...但没有删除相关文本框中的任何现有值(请参阅屏幕截图中的绿色框)。 在此处输入图片说明

我在这里检查:启用和禁用“使用自动配置脚本”的批处理文件脚本

但是该脚本 a) 删除了现有值,而 b) 似乎只禁用了他的复选框,而从不启用它。

@echo OFF

setlocal ENABLEEXTENSIONS
set KEY_NAME="HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
set VALUE_NAME=AutoConfigURL

FOR /F "usebackq skip=1 tokens=1-3" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul`) DO (
    set ValueName=%%A
    set ValueType=%%B    
    set ValueValue=%%C
)

@echo Value Name = %ValueName%
@echo Value Type = %ValueType%
@echo Value Value = %ValueValue%

IF  NOT "%ValueValue%"=="yyyy" (
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL /t REG_SZ /d "yyyy" /f
echo Proxy Enabled
) else ( …
Run Code Online (Sandbox Code Playgroud)

windows script batch-file internet-explorer-11

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

用于批处理文件中命令链的多行 && 组合运算符

我看到这个运算符在 Windows(可能是 Linux?)中用于在一行中链接/组合多个命令。只要前面的命令成功完成(退出代码 0),就会一个接一个地执行命令。

但是,我不明白它是否可以在批处理文件中使用,您可以一个接一个地指定命令,每行一个命令。在这种情况下,您如何实现相同的效果?你如何cmd1 && cmd2 && cmd3分成多行?你如何终止

cmd1
cmd2
cmd3
Run Code Online (Sandbox Code Playgroud)

一旦第一个命令失败?

我也想知道接线员的名字,以便以后自己找到类似问题的答案。

bash command-line newlines batch-file cmd.exe

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

用于关闭在后台运行的两个服务的 .bat 文件

我有一台带有三个帐户的 Windows 7 计算机(按层级顺序):

  1. 管理员(带密码)类型管理员
  2. 来宾(与管理员密码不同)类型管理员
  3. 用户(无密码)类型 标准用户

在用户的帐户上,我如何创建一个一旦启动就执行以下任务的批处理文件:

  • 停止在后台激活的名为 Teamviewer 的服务
  • 停止服务熊猫云办公保护
  • 以“InPrivate 模式”打开浏览器资源管理器
  • 从窗口事件注册表中删除之前持有的三个动作

第二个批处理文件将用于恢复原始情况,因此它应该像这样操作:

  • 关闭浏览器
  • 激活服务熊猫云办公保护
  • 激活服务团队查看器
  • 执行完后删除这三个动作的事件日志窗口

这两个文件将在需要时通过链接启动,之前在该链接上激活了以管理员身份运行选项。

我想避免每次输入管理员密码或guest密码来确认批处理的执行(我知道两个密码)。

最终,我想通过单击禁用这两项服务,而不会提示我输入密码,并且不会将其存储在事件日志中。一旦我结束在 Internet 上的搜索,只需再次单击第二个 .bat 文件,所有内容都将设置为初始状态。

windows-7 command-line batch-file

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

Windows 批处理文件中的连字符是什么意思?

特别是,我在理解以下行中的连字符时遇到问题,这些行来自维基教科书

if not -%1-==-- echo Argument one provided
if -%1-==-- echo Argument one not provided & exit /b
Run Code Online (Sandbox Code Playgroud)

要测试变量是否存在或定义,基本上有两种方法,我从这里学到:

IF DEFINED MyVar (ECHO MyVar IS defined) ELSE (ECHO MyVar is NOT defined)

IF "%MyVar%"=="" (ECHO MyVar is NOT defined) ELSE (ECHO MyVar IS defined)
Run Code Online (Sandbox Code Playgroud)

那么,(1) %1 参数周围的连字符和 (2) == 符号后面的连字符是什么意思?

windows command-line environment-variables batch-file cmd.exe

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

覆盖 Windows 批处理文件中的行?

就在我说什么之前,我已经尝试过以下代码:

@echo off

setlocal enableextensions enabledelayedexpansion
for /f %%a in ('copy /Z "%~dpf0" nul') do set "ASCII_13=%%a"

set /p "=Example 1" <NUL

set /p "=!ASCII_13!Example 2" <NUL
Run Code Online (Sandbox Code Playgroud)

我的来源:如何覆盖批处理文件的命令输出中的同一行(来自它的验证答案)

这对我不起作用。它只是像Example 1Example 2我尝试时那样输出。

所以我只需要一种方法来覆盖批处理文件中的同一行(例如,它之前说“示例 1”,但在该行之后会说“示例 2”)。

谢谢!

windows batch command-line batch-file cmd.exe

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

与使用 bat 和 cmd 有什么区别?

我试过谷歌,但也许谷歌 mojo 不好,因为我还没有找到合适的解释

我有一个批处理文件,可以停止和启动一些服务。然后使用服务帐户在任务调度程序中调度此批处理文件。

如果我将扩展名从 .bat 更改为 .cmd 则脚本将失败,因为用户似乎没有停止和启动服务的权限。

但是为什么仅仅通过更改脚本的扩展名就可以改变行为呢?

windows batch batch-file

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

如何使用cmd提示文件夹?

我有名为“user3”的文件夹

路径是,“c:/users/%username%/easy/user3/”

使用 cmd 我想像提示一样打开这个文件夹。

我尝试过以下批处理程序,

start "c:/users/%username%/easy/user3/"

start "c:/users/%username%/easy/user3"
Run Code Online (Sandbox Code Playgroud)

两者都无法打开文件夹 user3

请帮助伙计们..

batch batch-file cmd.exe

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

为什么以及如何在 Windows 操作系统的后续迭代中替换 Autoexec.bat?

我正在阅读有关 MS-DOS 体系结构的信息,并遇到了Autoexec.batconfig.sys 之类的文件。

Autoexec.bat一个批处理 ( .bat) 文件,其中包含用于初始化路径、环境变量、CWD、提示等的命令。该文件(连同config.sys)在操作系统的启动过程中自动执行(如果它们存在) )。

由于MS-DOS命令提示符在很大程度上彼此相同(或相似),我认为相同的过程也将在 Windows 操作系统的当前迭代中进行。

这似乎可以理解,因为当我们开始时,我们cmd每次都在特定的 CWD 处,在path等中指定了一组位置。

但事实证明,Windows XP和更高版本的 Windows 操作系统没有。

所以我在想现在一切都是如何初始化的,为什么Autoexec.bat被删除了?

windows ms-dos batch-file cmd.exe

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

如何通过 Windows 上的命令行删除子文件夹中的所有文件而不是子文件夹本身?

对于给定的文件夹,我需要删除所有子文件夹中的所有文件(各种扩展名)而不是子文件夹本身,因为我需要保留文件夹结构。有没有办法通过命令行或批处理文件来做到这一点?

windows batch command-line batch-file

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