一个批处理文件,不太懂!!

来源:百度知道 编辑:UC知道 时间:2024/06/25 08:40:25
@echo off
setlocal enabledelayedexpansion
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set var=%%i
set drive=!var:~-2!
fsutil fsinfo drivetype !drive!|find "固定">nul && del /a /f /s !drive!\_desktop.ini
)
pause
在第三行中,fsutil fsinfo drives 后面加上^这个符号是什么作用?
在这里为什么要使用 延迟的变量扩充?

在第三行中,fsutil fsinfo drives 后面加上^这个符号是什么作用?

因为|表示管道,在for语句里面只是想把它当作一般字符,所以要用^。

在这里为什么要使用 延迟的变量扩充?
set var=%%i
set drive=!var:~-2!
因为在for语句内drive要马上引用var的值,所以要用变量延迟,否则drive将得不到正确的值。

在第三行中,fsutil fsinfo drives 后面加上^这个符号是什么作用?

因为|是通道符,这里并不想用通道,而是要它做为字符串,所以用^转义。

在这里为什么要使用 延迟的变量扩充?

应该不需要延时扩展,有些人习惯用吧,你可以去掉再把相应的 ! 改成 % ,应该也是可以的