![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 19:43 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何把双空格替换成"|" |
| 可打印版本 784 / 7 |
| 第1楼 junyee | 发表于 2009-05-09 10:07 |
| 中级用户 发帖 112 积分 253 | |
|
如何把双空格替换成"|" 用批处理产生一个配置文件供某个程序读取
而该程序要求配置文件的格式中一定要含有|(就是CMD的管道符号) 部分代码为 set SFDir=F:\SOFT cd /d %SFDir% setlocal enabledelayedexpansion set str= for /f %%a in ('dir /b $*.7z') do ( if "!str!"=="" (set str=%%a) else set str=!str! %%a ) -----------------下面就出错了-------------------------- set str=%str: =|% echo %str% pause 经过试验,就是出在|上面,请问坛里诸前辈近友,可以方法能解决此问题??? 万一不行就把%str%的内容追加到文本里,再把文本中的" "(双空格)换成 "|" 可以用第三方软件,批处理碰到这些特殊符号就是麻烦。 运行环境:Windows XPS P2 @CMD 还有能不能用dir列出某个目录下(如F:\SOFT)下的以@打头的某个类型文件(如@*.txt)呀? dir /b /s F:\soft\@*.txt |
|
| 第2楼 netbenton | 发表于 2009-05-09 12:25 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
set "guan=|"
for /f %%a in ("!guan!") do set str=!str: =%%a! |
|
| 第3楼 junyee | 发表于 2009-05-09 13:31 |
| 中级用户 发帖 112 积分 253 | |
|
感谢楼上的朋友,不过试验证明:不行!!!
高手来呀 |
|
| 第4楼 zh159 | 发表于 2009-05-09 13:33 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
^|
|
|
| 第5楼 netbenton | 发表于 2009-05-09 13:53 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
楼主真的测试过了吗?
其实这样就可以了,在外面加双引号,我想得太复杂了: set "str=!str: =|!" set "str=%str: =|%" 以上两种方法都可以正常替换 还有把你的: echo %str% 改为: echo !str! [ Last edited by netbenton on 2009-5-9 at 11:57 ] |
|
| 第6楼 yishanju | 发表于 2009-05-09 22:03 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
|@在批处理里都是特殊符号,要表示他们本身前面要加^
|
|
| 第7楼 yishanju | 发表于 2009-05-09 22:08 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
两个空格替换成|
用FR处理起来方便 FR -ric:" " -t:"|" xx.txt |
|
| 第8楼 yishanju | 发表于 2009-05-09 22:10 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |