变量创建基础
使用 set
命令
- 语法:
set 变量名=值
- 示例:
set name=John set version=1.0
- 注意事项:
- 等号 两侧不能有空格(
set name = John
是错误的)。 - 值若含空格,需用引号包裹:
set path="C:\Program Files"
。
- 等号 两侧不能有空格(
引用变量
- 用
%变量名%
格式调用:echo Hello %name%! // 输出:Hello John!
变量进阶操作
用户输入赋值
通过 /p
参数接收输入:
set /p username=请输入用户名: echo 用户名为:%username%
数值计算
用 /a
参数执行算术运算:
set /a result=10+5 // 结果:15 set /a count+=1 // 自增操作
拼接字符串
直接连接变量与文本:
set prefix=File_ set suffix=.txt set filename=%prefix%Document%suffix% echo %filename% // 输出:File_Document.txt
作用域管理
局部变量(默认)
- 仅在当前命令窗口或批处理脚本中有效。
- 关闭窗口后自动消失。
全局环境变量
- 永久创建(需管理员权限):
setx SystemVar "重要数据"
- 重启后仍生效,通过
%SystemVar%
调用。
特殊场景处理
转义特殊字符
若值含 &
、 等符号,用引号包裹或添加 ^
转义:
set text="危险字符 & 符号" // 或 set text=危险字符 ^& 符号
动态变量名
通过嵌套调用实现:
set var_prefix=123 call echo %%var_%var_prefix%%%
检查变量是否存在
if defined name (echo 变量存在) else (echo 未定义)
实用示例
批量重命名文件
set ext=.bak for %%f in (*.txt) do ren "%%f" "%%~nf%ext%"
简易计算器
set /p num1=输入数字1: set /p num2=输入数字2: set /a sum=num1+num2 echo 结果:%sum%
注意事项
- 命名规则:
- 不区分大小写(
Name
和NAME
相同)。 - 避免使用 、空格或系统关键字(如
path
)。
- 不区分大小写(
- 作用域隔离:
在批处理脚本中,用setlocal
和endlocal
限制变量范围。 - 系统变量冲突:
勿覆盖%PATH%
、%TEMP%
等关键系统变量。
通过灵活使用变量,可显著提升DOS脚本的效率,建议在命令行中逐条测试示例以加深理解,更多细节可参考 Microsoft官方文档。
引用说明基于Windows命令提示符及批处理规范,参考Microsoft官方技术文档和命令行工具标准,实践前请确保操作环境为Windows XP及以上版本。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6047.html