![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-04 19:41 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何删除变量最后面的空格? |
| 可打印版本 850 / 6 |
| 第1楼 26933062 | 发表于 2007-06-02 08:02 |
| 银牌会员 发帖 879 积分 2,268 | |
|
如何删除变量最后面的空格? @echo off set a="w e t " 要求 设变量 b=w e t 变量a不一定是三位数,请问有没有什么通用性的方法删除最后的空格? ::谢各位,其实我的本意是这样,从a.txt读取内容 设为变量a,然后去掉最后的所有空格. ::a.txt的内容如下 注:引号是我人为加的 " w e t hhh ggggg " 3742668 荣誉版主 的方法解决了我的问题,原来 if " " 双引号中间有个空格啊,我一直没搞懂判断变量等于空格这部分,原来是这样啊,......... 判断字符是否为空和是否为空格是有区别的. 谢了.... 我用的是 if "%a:~-1,1%"=="" (set a=%a:~0,-1% && goto ss) 难怪不对. bjsh 版主 的两个方法好像都不能达到我的目的,可能是我开始说的不够清楚吧 @echo off for /f "delims=" %%i in (a.txt) do set a=%%i :Loop if " " == "%a:~-1,1%" (set "a=%a:~0,-1%" && goto loop) echo %a%结束 pause [ Last edited by 26933062 on 2007-6-2 at 03:26 PM ] |
|
| 第2楼 slore | 发表于 2007-06-02 09:55 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
也可以为扩展名指定子字符串。
%PATH:~10,5% 会扩展 PATH 环境变量,然后只使用在扩展结果中从第 11 个(偏 移量 10)字符开始的五个字符。如果没有指定长度,则采用默认 值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数, 使用的数字则是环境变量数值长度加上指定的偏移量或长度。 %PATH:~-10% 会提取 PATH 变量的最后十个字符。 %PATH:~0,-2% 会提取 PATH 变量的所有字符,除了最后两个。 |
|
| 第3楼 bjsh | 发表于 2007-06-02 10:57 |
| 银牌会员 发帖 621 积分 2,000 | |
|
首先提出:
我不知道你 set a="wet " 是想告诉我们有空格的存在而加的引号; 还是 本身就是这样的; 1) set "a=wet " 如果是从文本读入 ; 在某些情况下可以 让delims 默认为空格; 这样取得的 参数就是不带空格的 此时用 set 赋值; 就不会出现空格; 也可以通过上述的原理进行变通; 例如 可以 set "a=wet " for /f %%a in ('echo %a%') do set b=%%a 不过这种方法效率有点低; 也可以利用 call set "a=wet " call :change %a% pause & goto :eof :change set b=%1 2) set a="wet " set a="wet " for /f %%a in ('echo %a%') do set b=%%~a |
|
| 第4楼 3742668 | 发表于 2007-06-02 11:21 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
有时候,老实一点未必就是愚钝的表现:
特殊字符未作防范。 |
|
| 第5楼 slore | 发表于 2007-06-02 11:53 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
扔给vbs去RTrim
|
|
| 第6楼 lxmxn | 发表于 2007-06-02 17:49 |
| 版主 发帖 4,938 积分 11,386 | |
| 第7楼 bjsh | 发表于 2007-06-02 19:41 |
| 银牌会员 发帖 621 积分 2,000 | |
|
我以为你只是 想除掉 最后的 空格 ;
我写的那些想做到 去除 包括中间的空格的话;还需要一些改动; 之所以 没有提出截取字符方法; 是因为我觉得他的效率太低; 如果只是为了处理 少部分; 还是有用的; |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |