小编dol*_*men的帖子

在 IF 内部时未设置批处理文件中的变量?

我有两个非常简单的批处理文件示例:

给变量赋值:

@echo off
set FOO=1
echo FOO: %FOO%
pause
echo on
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,结果是:

FOO: 1 
Press any key to continue . . .
Run Code Online (Sandbox Code Playgroud)

但是,如果我将相同的两行放在 IF NOT DEFINED 块中:

@echo off
IF NOT DEFINED BAR (
    set FOO=1
    echo FOO: %FOO%
)
pause
echo on
Run Code Online (Sandbox Code Playgroud)

出乎意料地导致:

FOO: 
Press any key to continue . . .
Run Code Online (Sandbox Code Playgroud)

应该与 IF没有任何关系,显然该块正在被执行。如果我在 if 上方定义 BAR,则只显示 PAUSE 命令中的文本,正如预期的那样。

是什么赋予了?


跟进问题:有没有办法在没有 setlocal 的情况下启用延迟扩展?

如果我从另一个内部调用这个简单的示例批处理文件,则该示例设置 FOO,但仅限于 LOCALLY。

例如:

测试调用者.bat

@call test.bat 
@echo FOO: …
Run Code Online (Sandbox Code Playgroud)

windows batch command-line

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

如何在网络连接/断开连接时启动命令?

我有一个 wifi 连接,一旦建立无线链接,就需要使用网络表单进行身份验证。我知道如何使用使用curl/ curlIE的脚本自动进行身份验证。

但是,我如何在每次连接到特定网络连接时要求 Windows 调用我的脚本?

我也有兴趣在我的脚本的命令行上接收无线配置文件的名称或 ESSID。

networking windows script wireless-networking hook

62
推荐指数
2
解决办法
7万
查看次数