楼 主
请问 如何 获取字符串的子串
发表于 2007-11-01 12:07 · 新加坡 Verizon通讯公司UUNet互联点
初级用户
★
积分 98
发帖 34
注册 2007-10-16 12:24
UID 99881
性别 男
状态 离线
我用for /F "usebackq delims=:" %%i in (`date /T`) do set ddtmp=%%i:~-10%
获取 月-日-年 不成功 郁闷
这里~-10%似乎不起作用
第 2 楼
发表于 2007-11-01 12:25 · 中国 浙江 衢州 中移铁通
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
UID 99469
性别 男
状态 离线
第 3 楼
发表于 2007-11-01 13:14 · 中国 广东 广州 白云区 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
UID 75048
性别 男
状态 离线
试试这个
(echo+%date:~0,10%|find " ") && set "ddtmp=%date:~-10%" || set "ddtmp=%date:~0,10%"
echo+%ddtmp%
pause
正在潜水修练的批处理小白
第 4 楼
发表于 2007-11-01 16:09 · 新加坡 Verizon通讯公司UUNet互联点
初级用户
★
积分 98
发帖 34
注册 2007-10-16 12:24
UID 99881
性别 男
状态 离线
第 5 楼
发表于 2007-11-01 16:10 · 新加坡 Verizon通讯公司UUNet互联点
初级用户
★
积分 98
发帖 34
注册 2007-10-16 12:24
UID 99881
性别 男
状态 离线
Originally posted by dikex at 2007-11-1 13:14:
试试这个
(echo+%date:~0,10%|find " ") && set "ddtmp=%date:~-10%" || set "ddtmp=%date:~0,10%"
echo+%ddtmp%
pause
这个太复杂了。。。
你的环境不是简单的ms-dos吧 在我的dos下运行不了
%date "...."
第 6 楼
发表于 2007-11-01 16:24 · 中国 浙江 衢州 中移铁通
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
UID 99469
性别 男
状态 离线
echo %date:* =%
echo %date:~6%
第 7 楼
发表于 2007-11-01 16:32 · 新加坡 Verizon通讯公司UUNet互联点
初级用户
★
积分 98
发帖 34
注册 2007-10-16 12:24
UID 99881
性别 男
状态 离线
谢谢abcd
不过,我写到batch里面好像不行了。。。
for /F "usebackq delims= " %%i in (`echo %date:* =%`) do set ddtmp=%%i
感觉我原来的方法也行,可能需要一个cmd /d 命令扩展delay啥的
对了,,能否说说这是什么语法?怎么查到这样的语法讲解??
第 8 楼
发表于 2007-11-01 16:37 · 中国 浙江 衢州 中移铁通
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
UID 99469
性别 男
状态 离线
我的意思是不需要for啦,直接echo出来就行了。可以直接
%date:~6%可以直接当变量使用的。
第 9 楼
发表于 2007-11-01 16:55 · 新加坡 Verizon通讯公司UUNet互联点
初级用户
★
积分 98
发帖 34
注册 2007-10-16 12:24
UID 99881
性别 男
状态 离线
恩,有的console下可以,有的却显示%i ,暂时还不知道原因
第 10 楼
发表于 2007-11-01 17:01 · 中国 浙江 衢州 中移铁通
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
UID 99469
性别 男
状态 离线
用for的话
for /f "tokens=1*" %%i in ('date /t') do @echo %%j
第 11 楼
发表于 2007-11-01 17:53 · 新加坡 Verizon通讯公司UUNet互联点
初级用户
★
积分 98
发帖 34
注册 2007-10-16 12:24
UID 99881
性别 男
状态 离线
Originally posted by abcd at 2007-11-1 17:01:
用for的话
for /f "tokens=1*" %%i in ('date /t') do @echo %%j
这一步我也能做到
但把 echo 换成 set xx=%j:~-10%
好像就不可以了
我再try 谢谢
第 12 楼
发表于 2007-11-01 18:02 · 中国 浙江 衢州 中移铁通
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
UID 99469
性别 男
状态 离线
搞清楚
变量%%j和变量%j%是不一样的
%%j只能在for中使用,而且只能扩展,不能截取
而%j%只能截取或替换,而没有扩展
第 13 楼
发表于 2007-11-01 19:06 · 新加坡 Verizon通讯公司UUNet互联点
初级用户
★
积分 98
发帖 34
注册 2007-10-16 12:24
UID 99881
性别 男
状态 离线
第 14 楼
发表于 2007-11-01 19:25 · 中国 广东 广州 白云区 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
UID 75048
性别 男
状态 离线
Originally posted by biwier at 2007-11-1 04:10 PM:
这个太复杂了。。。
你的环境不是简单的ms-dos吧 在我的dos下运行不了
%date "...."
ms-dos?dos?
记得这些里面的for都没有/f参数的,所以你的不会时ms-dos;
2000、xp等里面的cmd是命令提示符不是dos,和dos有很大区别的。
而我的运行环境是xp sp2 pro;
默认的日期格式是:2007-11-01 星期四
修改日期格式为:Thu 2007-11-01
在命令行和批处理里面两种日期格式都可以通过
正在潜水修练的批处理小白
第 15 楼
发表于 2007-11-01 22:35 · 中国 上海 东方有线
初级用户
★
积分 110
发帖 44
注册 2007-11-01 21:56
UID 101435
性别 男
状态 离线
Originally posted by dikex at 2007-11-1 07:25 PM:
ms-dos?dos?
记得这些里面的for都没有/f参数的,所以你的不会时ms-dos;
2000、xp等里面的cmd是命令提示符不是dos,和dos有很大区别的。
而我的运 ...
我在家里的机器上测试了,你的是可以的 ,在公司的时候是写了脚本里的,在英文版os上测试的
不过你写了三个句子也太复杂了....高手考虑得太全面了^_^
Rochechild=biwier
论坛跳转: