欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

dos 常用变量 系统环境变量 chatgpt 有大用 有大大用 有大大大用

在DOS(Disk Operating System)环境中,常用的变量主要包括环境变量批处理脚本中的变量。以下是详细的分类和说明:


一、系统环境变量

这些是DOS/Windows预定义的全局变量,可直接在命令行或批处理脚本中使用:

变量名说明
%PATH%系统可执行文件的搜索路径列表。
%TEMP%当前用户的临时文件夹路径(如 C:\Users\用户名\AppData\Local\Temp)。
%SystemRoot%Windows系统目录(通常为 C:\Windows)。
%USERPROFILE%当前用户的主目录(如 C:\Users\用户名)。
%COMSPEC%命令行解释器的路径(通常为 cmd.exe)。
%DATE%当前日期(格式取决于系统区域设置,如 2024-05-20)。
%TIME%当前时间(格式如 14:30:45.00)。
%ERRORLEVEL%

上一条命令的退出代码(0表示成功,非零表示错误)

“上一条命令的返回结果” 或 “程序执行状态码” Error Level ,翻译成 中文 "错误级别"


二、批处理脚本(.bat/.cmd)中的变量

1. 用户自定义变量

  • 定义变量

    bat
    set var_name=value

    例如:

    bat
    set name=John set count=10
  • 引用变量
    使用 %var_name%(如 echo %name%)。

2. 脚本参数变量

  • %0:当前脚本文件名。

  • %1 到 %9:传递给脚本的第1到第9个参数。

  • %*:所有参数的集合。

  • 示例:

    bat
    echo 第一个参数是: %1 echo 所有参数: %*

3. 特殊变量

  • %CD%:当前目录路径。

  • %~dp0:脚本所在目录的完整路径(常用于定位脚本资源)。

  • %RANDOM%:生成一个随机数(0-32767)。


三、动态变量(FOR循环、子程序)

1. FOR循环中的变量

  • 使用 %%x(在批处理中)或 %x(命令行直接使用):

    bat
    for %%x in (*.txt) do echo 文件: %%x

2. 延迟扩展变量(!var!

解决变量在代码块(如iffor)中实时更新的问题:

bat
setlocal enabledelayedexpansion set num=0 for /l %%i in (1,1,5) do (    set /a num+=1    echo 当前值: !num! )

四、变量操作示例

1. 字符串处理

  • 截取子串:

    bat
    set str=HelloWorld echo 前5个字符: %str:~0,5%  # 输出 "Hello"
  • 替换字符串:

    bat
    set str=abc-def echo 替换后: %str:-=%  # 输出 "abcdef"(删除减号)

2. 数值计算

bat
set /a result=10 + 5  # 输出15 set /a count+=1       # 自增1

五、查看所有环境变量

在命令行中输入以下命令查看全部变量:

bat
set

掌握这些变量能高效编写DOS批处理脚本或调试系统问题。根据需要选择全局变量或局部变量,并注意延迟扩展的使用场景。


普通分类: