![]() |
中国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 |