关于在 bat 中引用变量的问题

发布于 科技 2024-03-05
11个回答
  1. 匿名用户2024-01-26

    这与批次的预处理机制有关。

    批处理过程将预处理 if 之后的所有语句,将它们全部读入内存,然后展开变量:expand %n% 和 %m%,即替换它们; 但是,%n% 和 %m% 未在 if 语句之前定义,因此 %n%、%m% 被视为未定义,并且会发生错误。

    但是你会说,我在 if 之后定义了它,而你没有打开延迟变量,批处理不会识别你在 if 语句中所做的变量定义,所以你应该打开延迟变量:

    echo off

    set p c=请输入一个数字:

    setlocal enabledelayedexpansion

    if %c%==1 (

    set p n=请输入wifi名称:

    netsh wlan set hostednetwork ssid=!n!

    set p m=请输入wifi密码:

    netsh wlan set hostednetwork key=!m!

    回声设置完成。

    pause

  2. 匿名用户2024-01-25

    c% 表示取变量。

    if %c%==1 -》如果 c==1 括号是多余的。

  3. 匿名用户2024-01-24

    使用 extension 命令,在对文件执行此操作之前添加一行 setlocal enabledelayedexpansion,该行通常添加到批处理文件的顶部;

    如果需要使用相对路径或绝对路径,可以查看 for

    此外,还增强了对变量引用的替换。 现在,您可以使用以下选项语法:

    i - 删除所有引号 ("),扩展 %i% fi - 将 %i 扩展为完全限定的路径名% di - 仅将 %i 扩展为一个驱动器号% pi - 仅将 %i 扩展到一个路径% ni - 仅将 %i 扩展为一个文件名% 习 - 仅将 %i 扩展为一个文件扩展名%si - 仅使用短名称将路径扩展到扩展名% AI - 将 %i 扩展到文件属性% ti - 将 %i 扩展到文件日期 time% zi - 将 %i 扩展到大小% $path:i - 查找路径环境变量中列出的目录并扩展 %i。

    以查找第一个完全限定的名称。 如果未定义环境变量名称,或者未找到文件,则此组合键将扩展为空字符串。

  4. 匿名用户2024-01-23

    @echo off

    findstr /i /c:"computer name" >

    set /p a=<

    delfor in (%a%) do ..

    在 cmd 中无法将命令的结果直接分配给环境变量,您可以将结果输出到文件,然后通过重定向输入将其传递给 set p。

    当然,这是最简单的方法,你也可以使用 for 为其赋值:

    echo off

    for /f "delims=""" %%i in ('findstr /i /c:"computer name" ') do (

    set a=%%i)

    for in(%a%) do...

    在这种情况下,不能在第一个 for 中直接调用 %a%,如果调用了 %a%,则必须启用延迟环境变量。

    如果你对批处理一无所知,可以阅读我的博客,我自己写的教程,希望能帮到你!

  5. 匿名用户2024-01-22

    第 2 句表示 2 个明显的小错误。

    for /f "delims=" in %%1 ('%a%')do...

    对于没有赋值变量的 in(%a% 直接打印 findstr.)。file) 做....

    如果你的电脑名是要看电脑名的,就回显%computername%,如果不是,正确的语法就是我上面说的第一句话。

  6. 匿名用户2024-01-21

    第二句的格式不正确。

    其实两句话可以放在一起,比如:

    for /f %%a in ('findstr /i /c:"computer name" ')do (

    系列命令。

  7. 匿名用户2024-01-20

    echo offsetlocal enableDelayedExpansionfor %%v in ( time% )do set var=%%vecho %var%pause for 的 %%v 变量仅限于 set 语句,并单独设置该变量。

  8. 匿名用户2024-01-19

    for 使用两个百分号加上变量的形式(bat 使用两个百分号,命令行使用一个百分号),其中变量 var 是字母或数字,例如 %%a、%%1,这种形式的两个百分号加一个字母或数字只能出现在 for 中。 设置 var=xx,这里是设置变量,这里的变量 var 可以是一个单词,几个字符,比如 123、hello、abcd,设置后,以后要用你刚才设置的变量值(比如 echo)用两个百分号来表示变量名。 这是规则。

  9. 匿名用户2024-01-18

    for 中的变量是形式变量,echo 集中的变量是一般变量。

  10. 匿名用户2024-01-17

    !file:e:\b\=!

    这意味着删除了 file 变量中的子字符串 e: b,并且删除此 ** 中的子字符串的结果将分配给 file2 变量。

    del /f /q "!file!"表示强制删除! file!代表的文件,不需要用户确认。

    此批处理的目的是查找 e:b 目录及其子目录中的所有文件,如果 d:a 中的同一位置没有同名文件,请删除该文件。

  11. 匿名用户2024-01-16

    在 bat 文件中,多个命令写在一行或括号中,如果使用在行或括号中定义或修改的变量,则需要启用延迟变量扩充,并用感叹号引用变量。 在 bat 文件中,使用 setlocal enabledelayedexpansion 启用延迟变量扩展,在命令提示符窗口中,使用 cmd v:on

    最好在 任 命令的文件名中加上引号,以防止文件名中的空格等特殊字符引起的错误。

    echo off

    setlocal enabledelayedexpansion

    for %%i in (*do (

    set /a a+=1

    if /i not "%%~xi"==".bat" ren "%%i" "!a!.txt"

    停顿:如果我不这样做,在哪里"%%~xi"==".bat"防止重命名 bat 文件。

相关回答
10个回答2024-03-05

是的,没错!

8个回答2024-03-05

这里面有一个详细的解释,估计就是你需要的。

8个回答2024-03-05

一般来说,在三相电路中,火线使用红、黄、绿、蓝三种颜色来表示三根火线,中性线使用黑色。 在单相照明电路中,黄色一般为火线,蓝色为中性线,黄色和绿色为地线。 在某些地方,红色用于火线,黑色用于中性线,黄色和绿色用于地线。

14个回答2024-03-05

它是将 DAT 的值存储在加法器地址上,注意它是一个 16 位无符号数字。 >>>More

11个回答2024-03-05

我喜欢“直飞3000英尺,疑似银河落九天”的庐山瀑布; 我喜欢泰山的山顶,“摆动胸膛,生出层云,闯入鸟儿”; 我喜欢黄河的九条弯道,“奔海而不归”; 我喜欢长江三峡,“海峡两岸的猿猴都哭得停不下来”; 我喜欢《秦世明月韩世观》古朴的赛贝; 我喜欢“日出河花红”的美丽江南。 >>>More