Batch file 如何使批处理文件根据IP地址运行命令

Batch file 如何使批处理文件根据IP地址运行命令,batch-file,Batch File,我遇到了一个难题,当计算机是服务器时,我必须通过cmd运行指令,如果有其他计算机,则必须运行不同的命令。这只能通过批处理文件完成。这看起来像一个简单的if-else问题,但我发现它非常困难。如果有人遇到这个问题,请提供解决方案或一些有用的链接。我对批处理文件及其语法一无所知 @echo off set ip_address_string="IPv4 Address" rem Uncomment the following line when using older versions of Win

我遇到了一个难题,当计算机是服务器时,我必须通过cmd运行指令,如果有其他计算机,则必须运行不同的命令。这只能通过批处理文件完成。这看起来像一个简单的if-else问题,但我发现它非常困难。如果有人遇到这个问题,请提供解决方案或一些有用的链接。我对批处理文件及其语法一无所知

@echo off
set ip_address_string="IPv4 Address"
rem Uncomment the following line when using older versions of Windows without IPv6 support (by removing "rem")
rem set ip_address_string="IP Address"
echo Network Connection Test
for /f "usebackq tokens=2 delims=:" %%f in (`ipconfig ^| findstr /c:%ip_address_string%`) do echo Your IP Address is: %%f

if (%%f == 192.XX.XX.1){
cd Desktop
}

else{
cd Downloads
}

我会这样做的

@echo off

for /f "usebackq tokens=*" %%a in (`powershell -command " ((ipconfig | findstr [0-9].\.)[0]).Split()[-1] "`) do set IPVar=%%a
echo The following IP is available in a variable for use in a batch script: %IPVar%

pause
在执行命令时,我喜欢在for循环中使用usebackq,因为它使我更容易使用引号。如果没有使用usebackq,那么将用撇号替换“``符号


所以我们在这里使用for循环,打开cmd并执行for/?获取有关其工作原理的完整解释。但我们的结果%%a存储powershell命令的结果以获取本地IP。然后将结果放入%%a并存储到%IPVar%中。

在命令提示窗口中键入
if/?
,学习正确的语法。而
%%f
仅在循环上下文中可用,但如果查询在循环之外,则您的(错误)
…有关语法或某个链接或某个链接的更多详细信息。提前感谢。另外,请使用圆括号而不是大括号,else关键字必须与代码块的结束括号位于同一行。将这两个关键字转换为字符串,然后进行比较。