其实还可以更简单一点- @echo off
- set "a=>nul&dir /b"
- echo %a%
- pause
复制代码 实际上,并没有把值赋给了变量a
变量a实际的值是>nul&dir /b
打开变量延迟或者使用set a就可以看到- @echo off
- set a=%a:^>nul^&dir /b%
- echo %a%
- pause
- setlocal enabledelayedexpansion
- echo !a!
- pause
- set a
- pause
复制代码 实际上的原理是,预处理的时候将echo %a%扩展成了echo >nul&dir /b,因此自然就显示出了dir /b命令的结果。从本质上看,这跟下面代码没什么区别- @echo off
- set "a=dir /b"
- %a%
- pause
复制代码
|