[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理for套dir时使用变量扩展为什么不对?

本帖最后由 hfgjgx 于 2023-11-5 10:33 编辑

执行
  1. [code]@echo off
  2. for /f "delims=" %%i in ('dir /b /ad "C:\Users"') do (
  3. echo "%%~i"
  4. )
复制代码
正确显示了C:\Users下的文件夹名

但一旦用了其他形式的变量扩展,无论是什么形式,echo输出的都是批处理所在的文件路径
例如
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /ad "C:\Users"') do (
  3. echo "%%~pi"
  4. )
复制代码
显示的是批处理所在的文件路径
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /ad "C:\Users"') do (
  3. echo "%%~di"
  4. )
复制代码
显示的是批处理所在的盘符
怎么解决,为什么?
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 2# ShowCode

我因该没讲清楚,我改了一下帖子,请再看一下

TOP

回复 4# qixiaobin0715
我因该没讲清楚,我改了一下帖子,请再看一下

TOP

回复 3# 77七
我因该没讲清楚,我改了一下帖子,请再看一下

TOP

回复 5# czjt1234
参见for /?

TOP

返回列表