中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 17:54
48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 列举文件(含特殊字符文件名)的相对路径
可打印版本  939 / 2
第1楼 wingofsea 发表于 2006-12-17 20:22
初级用户 发帖 34 积分 124
列举文件(含特殊字符文件名)的相对路径
如下代码可以输出当前目录下所有文件的相对路径,但如果当前目录下存在含特殊字符名称的文件,如 ~!@#$%^&()-+.txt, 则会返回 “) was unexpected at this time” 的错误,程序退出。
请问,如何修改下面的代码,支持将含特殊字符名称的文件的相对路径列出来。

@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%i in ('"dir /a-d /s /b /on *.* 2>NUL"') do (
set file=%%~fi
set file=!file:%cd%\=!
set file=!file:/=\!
echo. file---"!file!"
)
pause>nul
第2楼 redtek 发表于 2006-12-17 21:26
金牌会员 发帖 1,147 积分 2,902
兄可以参考下面这个贴子~:)

(详见下面链接贴子的第8楼,并注意其 setlocal EnableDelayedExpansion 为了不与特殊字符发生 “冲突” 所放置的位置)
(里面关于特殊字符正常读取的示例已经讲透了~:)


无奈何签名代码略析

http://www.cn-dos.net/forum/viewthread.php?tid=18838&fpage=1&highlight=%E6%97%A0%E5%A5%88%E4%BD%95


看完上面贴子以后,兄就可以处理类似下面的这些特殊字符了:



[ Last edited by redtek on 2006-12-17 at 08:29 AM ]
第3楼 namejm 发表于 2006-12-18 00:30
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  可以试试下面的代码:


[ Last edited by namejm on 2006-12-17 at 12:23 PM ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023