标题: 请问 如何 获取字符串的子串
[打印本页]
作者: biwier
时间: 2007-11-1 12:07
标题: 请问 如何 获取字符串的子串
我用for /F "usebackq delims=:" %%i in (`date /T`) do set ddtmp=%%i:~-10%
获取 月-日-年 不成功 郁闷
这里~-10%似乎不起作用
作者: abcd
时间: 2007-11-1 12:25
楼主的date输出格式 是什么样子的??
作者: dikex
时间: 2007-11-1 13:14
试试这个
(echo+%date:~0,10%|find " ") && set "ddtmp=%date:~-10%" || set "ddtmp=%date:~0,10%"
echo+%ddtmp%
pause
作者: biwier
时间: 2007-11-1 16:09
thur 10-31-2007
作者: biwier
时间: 2007-11-1 16:10
Quote: |
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 "...."
作者: abcd
时间: 2007-11-1 16:24
echo %date:* =%
echo %date:~6%
作者: biwier
时间: 2007-11-1 16:32
谢谢abcd
不过,我写到batch里面好像不行了。。。
for /F "usebackq delims= " %%i in (`echo %date:* =%`) do set ddtmp=%%i
感觉我原来的方法也行,可能需要一个cmd /d 命令扩展delay啥的
对了,,能否说说这是什么语法?怎么查到这样的语法讲解??
作者: abcd
时间: 2007-11-1 16:37
我的意思是不需要for啦,直接echo出来就行了。可以直接
%date:~6%可以直接当变量使用的。
作者: biwier
时间: 2007-11-1 16:55
恩,有的console下可以,有的却显示%i ,暂时还不知道原因
作者: abcd
时间: 2007-11-1 17:01
用for的话
for /f "tokens=1*" %%i in ('date /t') do @echo %%j
作者: biwier
时间: 2007-11-1 17:53
Quote: |
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 谢谢
作者: abcd
时间: 2007-11-1 18:02
搞清楚
变量%%j和变量%j%是不一样的
%%j只能在for中使用,而且只能扩展,不能截取
而%j%只能截取或替换,而没有扩展
作者: biwier
时间: 2007-11-1 19:06
醍醐灌顶阿!!!3x
作者: dikex
时间: 2007-11-1 19:25
Quote: |
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
在命令行和批处理里面两种日期格式都可以通过
作者: RocheChild
时间: 2007-11-1 22:35
Quote: |
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
作者: terse
时间: 2007-11-2 00:04
@echo off
for /f %%i in ('date /t') do echo %%i
pause>nul
我这里得到 2007-11-01
[
Last edited by terse on 2007-11-2 at 12:09 AM ]