更改 bat 文件并运行

change in bat file and run

提问人:Alireza Ansari 提问时间:11/16/2023 最后编辑:CompoAlireza Ansari 更新时间:11/18/2023 访问量:41

问:

我想更改 bat 文件中的变量。

例如,蝙蝠文件要求我插入用户名,然后它会在文本文件的末尾替换它,并将修改后的行作为命令运行。abcdef555wwwww

以前:

xmrig.exe -o xmr.2miners.com:2222 -u 44eEFY2Jx5R4yqNuffejZXQXbGgw1QjhwcwCiXYdh4aBhyc9ofYgzan442bPXRF6EgEydzMmrYJg3bJh7XEHMtnuPdqJbxm.wwwww -p x

后:

xmrig.exe -o xmr.2miners.com:2222 -u 44eEFY2Jx5R4yqNuffejZXQXbGgw1QjhwcwCiXYdh4aBhyc9ofYgzan442bPXRF6EgEydzMmrYJg3bJh7XEHMtnuPdqJbxm.abcdef555 -p x
批处理文件 变量赋值

评论

1赞 Stephan 11/16/2023
批处理中的变量的使用方式类似于(在窗口中尝试)。您可以使用以下命令从用户那里获取输入(请参阅%variable%echo %date%cmdset /pset /?)

答:

0赞 Mofi 11/18/2023 #1

批处理文件可以扩展到:

@echo off
setlocal EnableExtensions DisableDelayedExpansion

rem Assign the first argument string passed to the batch file without
rem surrounding double quotes to the environment variable NameUser or
rem undefine the environment variable NameUser on batch file is run
rem without an argument string or with an empty argument string on
rem being currently defined at all.
set "NameUser=%~1"

rem Prompt the user of the batch file for the name if the batch file was
rem executed without passing the name as argument string to the batch file.
rem The prompt is repeated until the user of the batch file until the user
rem does not just press RETURN or ENTER without input of any string before.
:NamePrompt
if not defined NameUser set /P "NameUser=Enter user name: " || goto NamePrompt

rem Remove all double quotes from the user input string for
rem safe processing it further on the next command lines.
set "NameUser=%NameUser:"=%"

rem If the user input by mistake just double quotes, prompt the user again.
if not defined NameUser goto NamePrompt

rem Run the program with the name passed to the batch file as
rem first argument or entered by the user of the batch file.
xmrig.exe -o xmr.2miners.com:2222 -u "44eEFY2Jx5R4yqNuffejZXQXbGgw1QjhwcwCiXYdh4aBhyc9ofYgzan442bPXRF6EgEydzMmrYJg3bJh7XEHMtnuPdqJbxm.%NameUser%" -p x 
endlocal

以 command 开头的行说明了命令行。可以删除批处理文件中的最小行数的这些行以及所有空行。rem

我推荐阅读:如何阻止 Windows 命令解释器在不正确的用户输入上退出批处理文件执行?这个答案详细解释了如何以故障安全和安全的方式提示用户输入字符串,就像这里所做的那样。set /P

Смотритетакже: 为什么在命令行上使用“set var = text”后没有带有“echo %var%”的字符串输出?引用的答案详细解释了为什么在批处理文件中应优先使用语法来(重新)定义具有(新)值的环境变量。set "variable=value"

要了解所使用的命令及其工作原理,请打开命令提示符窗口,在那里执行以下命令,并完整、仔细地阅读每个命令的显示帮助页面。

  • call /?...解释%~1
  • cmd /?
  • echo /?
  • endlocal /?
  • goto /?
  • if /?
  • rem /?
  • set /?
  • setlocal /?