楼 主
怎样才能显示含特殊字符文件名
发表于 2010-09-18 23:54 · 中国 广东 韶关 电信
高级用户
★★★
CMD感染者
积分 691 发帖 383 注册 2008-05-23 00:38 18年会员 UID 119451 性别 男
状态 离线
一个含特殊字符的文件,如: &^file.txt ,把它拖到一批处理的图标,如何使此P能打印出文件名?
第 2 楼
发表于 2010-09-19 12:34 · 中国 北京 中电华通通信有限公司
初级用户
★
积分 49 发帖 43 注册 2007-01-20 03:28 19年会员 UID 77088 性别 男
状态 离线
理论上是无法实现的,因为你拖动的文件名本身包含&符号,如果不用双引号括起来就会把脚本当作2个命令执行。
但是可以用命令行方式实现,脚本如下,执行方式: show.bat "c:\&^file.txt"
@echo off
echo %1
第 3 楼
发表于 2010-09-22 00:53 · 中国 广东 广州 电信
高级用户
★★★
CMD感染者
积分 691 发帖 383 注册 2008-05-23 00:38 18年会员 UID 119451 性别 男
状态 离线
第 4 楼
发表于 2010-12-27 18:43 · 中国 广东 韶关 电信
高级用户
★★★
CMD感染者
积分 691 发帖 383 注册 2008-05-23 00:38 18年会员 UID 119451 性别 男
状态 离线
第 5 楼
发表于 2010-12-27 19:54 · 中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916 发帖 752 注册 2008-12-28 04:30 17年会员 UID 135147 性别 男 来自 广西
状态 离线
楼主可试试这个代码看看合不合你的要求~~
@echo off&SETLOCAL ENABLEDELAYEDEXPANSION
set "fn=%~1
echo !fn!
pause
第 6 楼
发表于 2010-12-30 20:01 · 中国 广东 韶关 电信
高级用户
★★★
CMD感染者
积分 691 发帖 383 注册 2008-05-23 00:38 18年会员 UID 119451 性别 男
状态 离线
第 7 楼
发表于 2011-01-01 21:23 · 中国 台湾 中华电信(HiNet)
初级用户
★
积分 109 发帖 30 注册 2007-09-05 14:27 18年会员 UID 96621 性别 男
状态 离线
set "wfiles=%cmdcmdline:"=%"
call set "wfiles=%%wfiles:*%~d0=%%"
call set "wfiles=%%wfiles:*%~d1=%%"
call set "wfiles=%%wfiles: %~d1=" "%~d1%%"
set wfiles="%~d1%wfiles%"
for %%a in (%wfiles%) do @echo %%~nxa
pause
有些文件名,如:&(.txt
整个路径必须带有空格,才能显示
如:C:\A BC\DEF\&(.txt
C:\ABC\D EF\&(.txt
C:\ABC\DEF\G &(.txt
本帖最近评分记录
(共 1 条)
点击查看详情
评分人 分数 时间
radem
+8
2011-01-03 15:33
第 8 楼
发表于 2011-01-03 15:33 · 中国 广东 韶关 电信
高级用户
★★★
CMD感染者
积分 691 发帖 383 注册 2008-05-23 00:38 18年会员 UID 119451 性别 男
状态 离线
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正