这似乎是一个非常简单的问题(运行 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) 我正在尝试创建一个 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(可能是 Linux?)中用于在一行中链接/组合多个命令。只要前面的命令成功完成(退出代码 0),就会一个接一个地执行命令。
但是,我不明白它是否可以在批处理文件中使用,您可以一个接一个地指定命令,每行一个命令。在这种情况下,您如何实现相同的效果?你如何cmd1 && cmd2 && cmd3分成多行?你如何终止
cmd1
cmd2
cmd3
Run Code Online (Sandbox Code Playgroud)
一旦第一个命令失败?
我也想知道接线员的名字,以便以后自己找到类似问题的答案。
我有一台带有三个帐户的 Windows 7 计算机(按层级顺序):
在用户的帐户上,我如何创建一个一旦启动就执行以下任务的批处理文件:
第二个批处理文件将用于恢复原始情况,因此它应该像这样操作:
这两个文件将在需要时通过链接启动,之前在该链接上激活了以管理员身份运行选项。
我想避免每次输入管理员密码或guest密码来确认批处理的执行(我知道两个密码)。
最终,我想通过单击禁用这两项服务,而不会提示我输入密码,并且不会将其存储在事件日志中。一旦我结束在 Internet 上的搜索,只需再次单击第二个 .bat 文件,所有内容都将设置为初始状态。
特别是,我在理解以下行中的连字符时遇到问题,这些行来自维基教科书
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
就在我说什么之前,我已经尝试过以下代码:
@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”)。
谢谢!
我试过谷歌,但也许谷歌 mojo 不好,因为我还没有找到合适的解释
我有一个批处理文件,可以停止和启动一些服务。然后使用服务帐户在任务调度程序中调度此批处理文件。
如果我将扩展名从 .bat 更改为 .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
请帮助伙计们..
我正在阅读有关 MS-DOS 体系结构的信息,并遇到了Autoexec.bat和config.sys 之类的文件。
Autoexec.bat一个批处理 ( .bat) 文件,其中包含用于初始化路径、环境变量、CWD、提示等的命令。该文件(连同config.sys)在操作系统的启动过程中自动执行(如果它们存在) )。
由于MS-DOS和命令提示符在很大程度上彼此相同(或相似),我认为相同的过程也将在 Windows 操作系统的当前迭代中进行。
这似乎可以理解,因为当我们开始时,我们cmd每次都在特定的 CWD 处,在path等中指定了一组位置。
但事实证明,Windows XP和更高版本的 Windows 操作系统没有。
所以我在想现在一切都是如何初始化的,为什么Autoexec.bat被删除了?
对于给定的文件夹,我需要删除所有子文件夹中的所有文件(各种扩展名)而不是子文件夹本身,因为我需要保留文件夹结构。有没有办法通过命令行或批处理文件来做到这一点?