标题: [已解决]怎么去掉日期中的“/”啊?
[打印本页]
作者: stableboy
时间: 2006-10-11 04:07
标题: [已解决]怎么去掉日期中的“/”啊?
在windows批处理文件中,我想创建一个以当天日期命名的文件,但是文件名里不能有“/”,所以想去掉当天日期中的“/”;
即 想把 “2006/10/10” 转换成 “20061010” 以生成 “20061010.txt”文件
我只知道 set d=%date% 可以获得当天日期,但怎么去掉“/”啊? 哪位大大知道啊?
[
Last edited by stableboy on 2006-10-11 at 06:08 ]
作者: NaturalJ0
时间: 2006-10-11 04:17
%date:/=%
作者: stableboy
时间: 2006-10-11 04:32
还是不对啊,
%date:/=%
输出为 %date:%=% 啊~!
作者: vkill
时间: 2006-10-11 04:41
%date:~0,4%%date:~5,2%%date:~8,2%
作者: NaturalJ0
时间: 2006-10-11 04:50
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\J>set a=2006/10/15
C:\Documents and Settings\J>echo %a:/=%
20061015
C:\Documents and Settings\J>_
==================================================
这是我的运行情况啊
作者: stableboy
时间: 2006-10-11 05:48
标题: 多谢多谢
谢谢两位大大,你们的方法都可以解决了。。。
这里的技术都好难啊,我看了几个帖子,都不懂。。。
要奋发图强,努力学好Dos批处理啦。~!。~!
今天新发现的这个论坛,好论坛啊,我以后就在这里学习了,
to NaturalJ0:
不好意思了,给上面加完分,在给大大加分时,发现每24小时只能加2分,所以只能等明天在给大大加分了啊~! :P
[
Last edited by stableboy on 2006-10-11 at 05:54 ]
作者: 不得不爱
时间: 2006-10-11 05:52
在2000系统了是%date:~4,4%%date:~9,2%%date:~12,2%才正确
作者: ARCF
时间: 2006-10-11 06:07
大虾们,能否说明下为什么呢?
:/这个有什么作用?
:~4,4这个又有什么作用?
作者: lxmxn
时间: 2006-10-11 06:46
Quote: |
Originally posted by ARCF at 2006-10-11 06:07:
大虾们,能否说明下为什么呢?
:/这个有什么作用?
:~4,4这个又有什么作用? |
|
这里的":/"要结合“%date:/=%”来理解,作用是使"%date%"这个变量中的“/”字符都替换成“=”号后面的符号,而这里的"="后面没有任何字符,也就是替换成空的,实际上是去掉%date%这个变量值里面所有的"/"符号.
而这里的":~4,4"也要结合上面的"%date:~4,4%"来理解,也就是截取"%date%"变量中的第四个字符到第八个字符,也就是从第四位开始,往后数四个这四个字符啦..
建议把"set /?"帮助命令好好看一下....
作者: weilong888
时间: 2006-10-11 09:15
还是%date:/=%这样的代码简洁实用。
作者: kcdsw
时间: 2006-10-12 05:14
For /F "tokens=1" %%a in ('date/t') do md %%a
机器的时间设置可能各不相同
用for 分析date/t 的输出 然后将日期传递给md 这样比较好 我用了7个月了
我综合利用了一下系统的一些特性
写了个动态目录
[
Last edited by kcdsw on 2006-10-12 at 05:16 ]
作者: weilong888
时间: 2006-10-12 05:47
kcdsw的代码,试了一下。 在xpsp2中,能正确创建当前时间的目录。
作者: 3742668
时间: 2006-10-12 06:36
Quote: |
Originally posted by kcdsw at 2006-10-12 05:14:
For /F "tokens=1" %%a in ('date/t') do md %%a 机器的时间设置可能各不相同
用for 分析date/t 的输出 然后将日期传递给md 这样比较好 戠... |
|
利用系统特性:
md %date%*
把*加到前面就是建立目录为当前星期。
讨论有点超出主题范围了。
作者: lxmxn
时间: 2006-10-12 07:18
Quote: |
Originally posted by 3742668 at 2006-10-12 06:36:
利用系统特性:
md %date%* 把*加到前面就是建立目录为当前星期。
讨论有点超出主题范围了。 |
|
按照版主的方法试了一下,好像不行哦``
Quote: |
C:\>md %date%*
文件名、目录名或卷标语法不正确。
处理: 星期三* 时出错。 |
|
作者: 3742668
时间: 2006-10-12 07:27
Re lxmxn:
Well,你可以在后面加上 2>nul
不要被错误提示所蒙蔽了眼睛,关键在于当前目录下有没有新建的目录。
作者: lxmxn
时间: 2006-10-12 07:35
Re:3742668
呵呵,真的建立了这个文件夹,我看见了出错的提示,还以为没有建立这个文件夹呢``
“ 2>nul”这招可真够绝的哦``不管系统报什么错,强制执行建立目录命令,呵呵````
作者: weilong888
时间: 2006-10-12 07:39
加上2>nul就不会有出错提示信息了。
作者: Dana
时间: 2007-4-22 15:33
学习了,以前我也遇到过,是改注册表和提取字符实现的...
作者: 546474
时间: 2007-4-22 22:51
高,牛,绝。
作者: HAT
时间: 2007-6-18 17:03
For /F "tokens=1" %%a in ('date/t') do md %%a
md %date%*
md *%date%
XP下测试失败
即使加上引号也不能正确创建
Quote: |
C:\>echo %date%
06/18/2007 Mon |
|
作者: joshualaw
时间: 2007-6-19 13:06
[quote]Originally posted by
HAT at 2007-6-18 05:03 PM:
For /F "tokens=1" %%a in ('date/t') do md %%a
md %date%*
md *%date%
XP下测试失败
即使加上引号也不能正确创建
For /F "tokens=1" %%a in ('date/t') do md %%a
%date:~0,4%%date:~5,2%%date:~8,2%
%date:~4,4%%date:~9,2%%date:~12,2%
这些语句只能用在XP上,能否告知用那同一语句都能用在XP 和 WIN2K 上,请各位高手出招
[
Last edited by joshualaw on 2007-6-19 at 01:12 PM ]
作者: zasxcdfv
时间: 2007-6-19 13:26
Quote: |
Originally posted by joshualaw at 2007-6-19 01:06 PM:
[quote]Originally posted by HAT at 2007-6-18 05:03 PM:
For /F "tokens=1" %%a in ('date/t') do md %%a
md %date%*
md *%date% XP ... |
|
可以先用findstr ver判断操作系统吧。
刚好上午我也遇到了win2000和xp下date 格式不同的问题。烦人啊。
作者: HAT
时间: 2007-6-19 13:43
Quote: |
C:\>echo %date%
06/19/2007 Tue |
|
21楼的帅哥请先看看我的日期显示格式
For /F "tokens=1" %%a in ('date/t') do md %%a
%date:~0,4%%date:~5,2%%date:~8,2%
%date:~4,4%%date:~9,2%%date:~12,2%
这三条语句即使在XP下也不通用
因为日期的显示格式可能不同
作者: zasxcdfv
时间: 2007-6-19 13:47
Quote: |
Originally posted by HAT at 2007-6-19 01:43 PM:
21楼的帅哥请先看看我的日期显示格式
For /F "tokens=1" %%a in ('date/t') do md %%a
%date:~0,4%%date:~5,2%%date:~8,2%
%date:~4,4%%date:~9,2%%date:~12,2%
这三条语句 ... |
|
能通过某些细节判断格式么?比如操作系统版本号?
这个问题不大但很烦,程序拿出来可用性不强。
ver >111.txt
echo %date%>>111.txt
start 111.txt
Microsoft Windows XP [版本 5.1.2600]
2007-06-19 星期二
看来没戏:( 难道只能在控制面板里改的吗。。。
[
Last edited by zasxcdfv on 2007-6-19 at 02:11 PM ]
作者: HAT
时间: 2007-6-19 14:02
//能通过某些细节判断格式么?比如操作系统版本号?
系统版本号好像不能区分:'(
Quote: |
C:\>ver
Microsoft Windows XP [Version 5.1.2600]
C:\>echo %date%
06/19/2007 Tue |
|
作者: zasxcdfv
时间: 2007-6-19 14:20
精通注册表的朋友可以看一下HKEY_CURRENT_USER/Control Panel/International
里面的几个建值,应该对这个问题有所帮助
sShortDate就是date的格式
作者: mgchl
时间: 2008-9-9 23:00
标题: 日期格式是 2008-09-09 星期二
set d=%date%
set a=%d:~0,10%
echo %a:-=%
运算结果就是
H:\>set d=2008-09-09 星期二
H:\>set a=2008-09-09
H:\>echo 20080909
20080909
作者: mgchl
时间: 2008-9-9 23:01
标题: 日期格式是 2008-09-09 星期二
set d=%date%
set a=%d:~0,10%
echo %a:-=%
运算结果就是
H:\>set d=2008-09-09 星期二
H:\>set a=2008-09-09
H:\>echo 20080909
20080909