无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 2931|回复: 9
打印 上一主题 下一主题

谁能帮忙看下这个字符串截取命令错在哪里了?

[复制链接]
跳转到指定楼层
1#
发表于 2012-3-3 09:05:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
@echo off

set str=2-03-12

echo %str:~0,1%

-----------------------------------------
执行结果总是显示 echo is on

想把2-03-12转变成2012年03月2日,应该怎样写呢?求指点,谢谢!
2#
 楼主| 发表于 2012-3-3 09:47:35 | 只看该作者
@echo off

set str1=abc
set str2=def

if %str1% neq %str2% echo 不相等 else echo 相等

----------------------------------
这一句也一样,只要跟字符串有关 就出错,是什么原因?
回复

使用道具 举报

3#
 楼主| 发表于 2012-3-3 10:17:26 | 只看该作者
折腾半天,自己找到原因了,原来这样的语法,是基于win98 dos的,不能在纯dos下执行

唉,dos真麻烦。
回复

使用道具 举报

4#
 楼主| 发表于 2012-3-3 12:25:15 | 只看该作者
真搞不定,头疼!

哪位朋友帮忙看下,这样的命令到底应该怎样写?
回复

使用道具 举报

5#
发表于 2012-3-3 12:37:03 | 只看该作者
原帖由 lhc0688 于 2012-3-3 12:25 发表
真搞不定,头疼!

哪位朋友帮忙看下,这样的命令到底应该怎样写?

@echo off去掉
回复

使用道具 举报

6#
 楼主| 发表于 2012-3-3 14:12:27 | 只看该作者
按楼上说的好像还不行。
回复

使用道具 举报

7#
发表于 2012-3-3 14:45:11 | 只看该作者
建议楼主先学会纯dos下的基本语法。纯dos下set命令没有cmd窗口的set命令功能那么强大,字符串截取需要用到第三方工具(例如strings)才行的。

--------------分割线-----------------
@echo off
set str=2-03-12
strings aa=mid %str%,1,1
set aa=201%aa%
strings bb=mid %str%,3,2
strings cc=mid %str%,6,2
set str=%aa%年%bb%月%cc%日
echo %str%
--------------分割线-----------------

关于strings,请以关键字strings在本论坛搜索即可得到。
回复

使用道具 举报

8#
 楼主| 发表于 2012-3-3 15:08:27 | 只看该作者
谢谢7楼的朋友!看来是这样的。

不过还有点小问题:日期格式是日-月-年(2-03-12),这是否需要判断日期的长度,如果需要,是不是这样写:

if strings length%str%=7 set str1=0%str%

把原日期格式变为:02-03-12,然后再处理?
回复

使用道具 举报

9#
发表于 2012-3-3 15:38:00 | 只看该作者

回复 #8 lhc0688 的帖子

strings len=length %str%
if "%len%"=="7" set str=0%str%
回复

使用道具 举报

10#
 楼主| 发表于 2012-3-3 19:14:50 | 只看该作者
谢谢pznpt,解决了困扰一整天的难题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-20 15:51

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表