中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-05 05:22
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 这一批处理错在那 查看 828 回复 12
楼 主 这一批处理错在那 发表于 2007-06-19 23:14 ·  中国 广东 广州 黄埔区 电信
初级用户
★★
积分 132
发帖 62
注册 2007-06-05 23:27
19年会员
UID 90371
性别 男
状态 离线
For /F "tokens=1" %%a in ('date/t') do if not exist c:\%%a md C:\%%a

我想用上面这一语句在C:\创建以日期为主的文件夹,例如 2007-06-19 但它却创建以星期为主的文件夹,如 Tue ,请问它错在那
2 发表于 2007-06-19 23:45 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
你的date命令的输出格式是什么样子的?

试试
For /F "tokens=2" %%a in ('date/t') do if not exist c:\%%a md C:\%%a
3 发表于 2007-06-20 09:36 ·  中国 河北 石家庄 北京神州长城通信技术发展中心中国长城互联网
初级用户
★★
积分 152
发帖 75
注册 2007-02-06 22:09
19年会员
UID 78805
性别 男
状态 离线
date 输出的格式有不同的。
你可以先echo %date%看一下具体格式再决定用哪个参数。
甚至年月日之间的分隔符也会对你的结果产生影响。比如: /这样的符号就无法md。
精通注册表的朋友可以看一下HKEY_CURRENT_USER/Control Panel/International 中
sShortDate就是date的格式。

[ Last edited by zasxcdfv on 2007-6-20 at 09:42 AM ]
4 发表于 2007-06-20 15:43 ·  中国 广东 东莞 电信
新手上路
积分 9
发帖 5
注册 2007-06-18 14:42
19年会员
UID 91702
性别 男
状态 离线
学了。
5 发表于 2007-06-20 17:17 ·  中国 上海 松江区 电信
新手上路
积分 4
发帖 1
注册 2007-06-20 16:18
19年会员
UID 91890
性别 男
状态 离线
学习。
6 发表于 2007-06-20 21:15 ·  中国 广东 广州 白云区 电信
初级用户
★★
积分 132
发帖 62
注册 2007-06-05 23:27
19年会员
UID 90371
性别 男
状态 离线
Originally posted by lxmxn at 2007-6-19 11:45 PM:
你的date命令的输出格式是什么样子的?

试试
For /F "tokens=2" %%a in ('date/t') do if not exist c:\%%a md C:\%%a


我的日期格式是:
C:\date/t
Wed 2007-06-20 (英文版WIN2K) 这个不行,我也在控制面版的区一设定里,设法改变日期格式,但还是不行哦

但在XP上,日期格式是如下,它可正常建立
c:\date/t
2007-06-20 Wed

请指点,谢
7 发表于 2007-06-21 00:50 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
不行??

怪了。
8 发表于 2007-06-21 08:08 ·  中国 广东 深圳 联通
初级用户
高級總監
积分 65
发帖 27
注册 2007-06-20 16:50
19年会员
UID 91895
性别 男
来自 china
状态 离线
good 學習下
走過路過,千萬別錯過。
9 发表于 2007-06-22 07:38 ·  中国 广东 广州 黄埔区 电信
初级用户
★★
积分 132
发帖 62
注册 2007-06-05 23:27
19年会员
UID 90371
性别 男
状态 离线
Originally posted by luowanli1984 at 2007-6-21 08:08 AM:
good 學習下


重新更改日期格式,它可以了,请告知这个2 是什么意思。谢谢版主

"tokens=2
10 发表于 2007-06-22 16:35 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Originally posted by joshualaw at 2007-6-22 07:38:


重新更改日期格式,它可以了,请告知这个2 是什么意思。谢谢版主

"tokens=2

表示以delims指定的字符为分隔符的第二列,这里没有指定delims选项,则采用默认模式,即用空格()和制表符()为分隔符。

建议楼主多搜索一下论坛关于for命令使用的贴子。
11 发表于 2007-06-22 16:54 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
try this one :)

@echo off
reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d yyyy-M-d /f
set "Week=Mon Tue Wed Thu Fri Sat Sun 星期一 星期二 星期三 星期四 星期五 星期六 星期日"
set datestr=%date%
for %%n in (%Week%) do call set "datestr=%%datestr:%%n=%%"
md %datestr%
12 发表于 2007-06-22 19:23 ·  中国 湖南 衡阳 电信
中级用户
★★
积分 322
发帖 144
注册 2007-01-10 13:00
19年会员
UID 76062
性别 男
状态 离线
对啊` ` 到注册表里查一下就出来了
13 发表于 2007-06-22 20:00 ·  中国 广东 广州 黄埔区 电信
初级用户
★★
积分 132
发帖 62
注册 2007-06-05 23:27
19年会员
UID 90371
性别 男
状态 离线
Thanks "Ban Zhu" and "HAT", also could you give me some explanation of the following whose meaning is what

for %%n in (%Week%) do call set "datestr=%%datestr:%%n=%%"
论坛跳转: