首页 > 其他分享 >无涯教程-批处理 - 变量声明

无涯教程-批处理 - 变量声明

时间:2023-11-05 12:32:00浏览次数:40  
标签:文件 教程 SET 变量 批处理 无涯 echo set

批处理文件中有两种类型的变量,一种是用于在调用批处理文件时传递的参数,另一种是通过set命令进行传递的参数。

命令行参数

批处理脚本支持命令行参数的概念,其中可以在调用参数时将参数传递给批处理文件,可以通过变量%1,%2,%3等从批处理文件中调用参数。

以下示例显示了一个批处理文件,该文件接受3个命令行参数,并将它们回显到命令行屏幕。

@echo off 
echo %1 
echo %2 
echo %3

如果上述批处理脚本存储在名为test.bat的文件中,无涯教程将以

Test.bat 1 2 3

以下是执行批处理文件时在命令提示符下的外观的屏幕截图。

命令行参数

上面的命令产生以下输出。

1 
2 
3

如果将批处理运行为

Example 1 2 3 4

输出仍将与上面相同,但是,第四个参数将被忽略。

SET指令

初始化变量的另一种方法是通过" set"命令。以下是set命令的语法。

set /A variable-name=value

哪里,

  • variable-name  -   是要设置的变量的名称。

  • value                   -   是需要针对变量设置的值。

  • /A                        -   如果值本质上需要为数字,则使用此开关。

以下示例显示了可以使用set命令的一种简单方法。

@echo off 
set message=Hello Learnfk 
echo %message%
  • 在上面的代码片段中,定义了一个名为message的变量,并将其设置为" Hello Learnfk"的值。

  • 要显示该变量的值,请注意,该变量需要包含在%号中。

上面的命令产生以下输出。

Hello Learnfk

使用数值

在批处理脚本中,还可以定义一个变量来保存数值,这可以通过使用/A开关来完成。

以下代码显示了使用/A开关设置数值的简单方法。

@echo off 
SET /A a = 5 
SET /A b = 10 
SET /A c = %a% + %b% 
echo %c%
  • 首先将2个变量a和b的值分别设置为5和10。

  • 将这些值相加并存储在变量c中。

  • 最后,显示变量c的值。

以上程序的输出为15。

所有算术运算符都在批处理文件中工作,以下示例显示了可在批处理文件中使用的算术运算符。

@echo off 
SET /A a = 5 
SET /A b = 10 
SET /A c = %a% + %b% 
echo %c% 
SET /A c = %a% - %b% 
echo %c% 
SET /A c = %b%/%a% 
echo %c% 
SET /A c = %b% * %a% 
echo %c%

上面的命令产生以下输出。

15 
-5 
2 
50

局部&全局变量

在任何编程语言中,都可以选择将变量标签为具有某种范围,即可以在其上访问它们的代码段,通常,可以从程序的任何位置访问具有全局范围的变量,而局部范围的变量具有定义的边界,可以在其中访问它们。

默认情况下,变量是整个命令提示符会话的全局变量,调用SETLOCAL命令以使变量在脚本范围内是本地的,调用SETLOCAL之后,所有变量分配都会在调用ENDLOCAL,调用EXIT或执行到达脚本中文件尾(EOF)时恢复,以下示例显示了在脚本中设置局部变量和全局变量时的区别。

@echo off 
set globalvar = 5
SETLOCAL
set var = 13145
set /A var = %var% + 5
echo %var%
echo %globalvar%
ENDLOCAL

关于上述程序,需要注意的几件事。

  • " globalvar"是使用全局范围定义的,并且在整个脚本中都可用。

  • " var"变量是在本地范围内定义的,因为它包含在" SETLOCAL"和" ENDLOCAL"块之间,因此,一旦执行" ENDLOCAL"语句,该变量将被销毁。

上面的命令产生以下输出。

13150
5

您会注意到命令echo%var%将不会产生任何输出,因为在ENDLOCAL语句之后," var"变量将不再存在。

使用环境变量

如果您有将在批处理文件中使用的变量,那么始终最好使用环境变量,定义环境变量后,可以通过%符号对其进行访问,以下示例显示如何查看系统上定义的JAVA_HOME, JAVA_HOME变量是各种应用程序通常使用的关键组件。

@echo off 
echo %JAVA_HOME%

输出将显示JAVA_HOME目录,该目录取决于系统。

C:\Atlassian\Bitbucket\4.0.1\jre

参考链接

https://www.learnfk.com/batch-script/batch-script-variables.html

标签:文件,教程,SET,变量,批处理,无涯,echo,set
From: https://blog.51cto.com/u_14033984/8192685

相关文章

  • 【Git 教程系列第 27 篇】ssh: connect to host github.com port 22: Connection refu
    https://blog.csdn.net/qq_42351033/article/details/131612279ssh:connecttohostgithub.comport22:Connectiontimedoutfatal:Couldnotreadfromremoterepo......
  • 无涯教程-批处理 - 语法
    通常,批处理文件中的第一行通常包含以下命令。ECHO命令@echooff默认情况下,批处理文件将在运行时显示其命令,第一条命令的目的是关闭此显示,命令“echooff”关闭整个脚本的显示,但“echooff”命令本身除外。前面的“@”符号“@”使命令也适用于其自身。脚本程序让无涯教程......
  • 无涯教程-批处理 - 简介
    批处理文件(英语:Batchfile),又称批次档,在DOS、OS/2、微软视窗系统中,是一种用来当成脚本语言运作程序的文件。它本身是文本文件,其中包含了一系列让具备命令行界面的解释器读取并运行的指令。它应用于DOS和Windows系统中,它是由DOS或者Windows系统内嵌的解释器(通常是COMMAND.COM或者CMD......
  • FreeRTOS深入教程(任务创建的深入和任务调度机制分析)
    (文章目录)前言本篇文章将带大家深入学习任务的创建和分析任务调度的机制。一、深入理解任务的创建创建任务函数原型:BaseType_txTaskCreate(TaskFunction_tpxTaskCode,constchar*constpcName,/*lint!e971Unqualifiedchartypes......
  • 无涯教程-批处理 - 环境设置
    本章介绍与批处理脚本相关的环境。写入&执行通常,要创建批处理文件,请使用记事本,这是用于创建批处理文件的最简单的工具,接下来是批处理脚本的执行环境。在Windows系统上,这是通过命令提示符或cmd.exe完成的,所有批处理文件都在此环境中运行。以下是启动cmd.exe的不同方法-方法1-......
  • 无涯教程-批处理 - 文件处理
    在本章中,无涯教程将学习如何创建,保存,执行和修改批处理文件。创建批处理文件批处理文件通常在记事本中创建,因此,最简单的方法是打开记事本并输入脚本所需的命令,对于本练习,请打开记事本并输入以下语句。::DeletesAllfilesintheCurrentDirectoryWithPromptsandWarnings......
  • Linux安装maven(详细教程)
    yuanwen:https://www.cnblogs.com/outrun/p/17708907.htmlhttps://www.cnblogs.com/outrun/p/17708907.htmlLinux安装maven(详细教程)Linux安装maven(详细教程)一、简介Maven是意第绪语,意思是“知识的积累者”,最初是为了简化JakartaTurbine项目中的构建过程。有几......
  • 无涯教程-MongoDB - 上限集合
    上限集合是固定大小的循环集合,遵循插入顺序以支持高性能的创建,读取和删除操作。循环表示这意味着分配给集合的固定大小用尽时,它将开始删除集合中最旧的文档,而无需提供任何显式命令。创建上限集合要创建一个有上限的集合,无涯教程使用常规的createCollection命令,但将capped选项......
  • 无涯教程-MongoDB - GridFS
    GridFS是MongoDB规范,用于存储和检索大文件,例如图像,音频文件,视频文件等,它是一种文件系统,用于存储文件,但其数据存储在MongoDB集合中。GridFS能够存储甚至超过其文档大小限制16MB的文件。GridFS将文件分为多个块,并将每个数据块存储在单独的文档中,每个文件的最大大小为255k。默......
  • 无涯教程-MongoDB - 正则
    在所有语言中,经常使用正则表达式来搜索任何字符串中的模式或单词,MongoDB还提供了使用$regex运算符进行字符串模式匹配。与文本搜索不同,无涯教程不需要进行任何配置或命令即可使用正则表达式。考虑posts集合下的以下文档结构,其中包含帖子文本及其标签-{"post_text":"......