【问题标题】:Is there a way to write a variables name in a bat file using bat?有没有办法使用 bat 在 bat 文件中写入变量名称?
【发布时间】:2021-06-16 12:36:04
【问题描述】:

我问这个是因为我想为我制作的一个简单的网站 IP 查找器制作一个下载文件。到目前为止的代码如下:

@echo off
color 03
SET /P user=Enter the user you are using here: 
echo.>>"C:\Users\%user%\desktop\WebIPFind.bat"
echo @echo off > WebIPFind.bat
echo color 03 >> WebIPFind.bat
echo :loop >> WebIPFind.bat
echo SET /A ip=%ip%+1 >> WebIPFind.bat
echo ECHO IP No. %ip% >> WebIPFind.bat
echo SET /P website=Enter a website URL:  >> WebIPFind.bat
echo ping %website% -l 8 -w 1 -n 1 >> WebIPFind.bat
echo goto :loop >> WebIPFind.bat

但是当我使用它时,它只是用空格替换变量。有没有办法让它写下变量的名称? (我不需要写入用户变量,因为它用于选择写入bat文件的位置)

【问题讨论】:

  • 我并不真正使用.bat 文件,但尝试将set 命令和echo 命令分开?另外,我发现您在将ip 的值分配给ip 之前没有在任何地方设置它。
  • % 字符是它自己的转义字符。要从字面上输出变量扩展,而不需要变量扩展,即使未定义变量也会发生这种情况,您需要使用:%%VariableName%% - 话虽如此,当您从批处理中创建另一个批处理文件时几乎没有意义可以在批处理文件中调用一个函数。

标签: batch-file variables


【解决方案1】:

您修改后的示例,如 T3RROR 解释

@echo off
color 03
SET /P user=Enter the user you are using here: 

(
  echo(
  echo @echo off
  echo color 03
  echo :loop
  echo SET /A ip=ip+1
  echo ECHO IP No. %%ip%%
  echo SET /P website=Enter a website URL:
  echo ping %%website%% -l 8 -w 1 -n 1
  echo goto :loop
) >>"C:\Users\%user%\desktop\WebIPFind.bat" 

【讨论】:

  • 如何在一个文件中执行两次?
  • @pleasehelpme 做一次已经不好了,为什么还要重复呢?为什么不直接执行当前批处理文件中的代码?
  • 我想重复一遍,因为我希望它充当将文件从 USB 或共享的谷歌驱动器安装到计算机上的东西。 (我想和人们分享我做的东西)
  • @pleasehelpme 好的,您可以简单地将代码移动为一个函数并调用它两次,但您应该修改WebIPFind.bat 文件名或追加而不是覆盖文本
猜你喜欢
  • 1970-01-01
  • 2017-11-10
  • 1970-01-01
  • 2011-07-10
  • 2015-07-31
  • 1970-01-01
  • 2016-10-06
  • 2014-01-22
  • 2011-08-12
相关资源
最近更新 更多