我有两个非常简单的批处理文件示例:
给变量赋值:
@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) 我有一个 wifi 连接,一旦建立无线链接,就需要使用网络表单进行身份验证。我知道如何使用使用curl/ curlIE的脚本自动进行身份验证。
但是,我如何在每次连接到特定网络连接时要求 Windows 调用我的脚本?
我也有兴趣在我的脚本的命令行上接收无线配置文件的名称或 ESSID。