中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 04:45
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 生成含有日期信息的文件名问题 查看 2,452 回复 15
楼 主 生成含有日期信息的文件名问题 发表于 2006-08-08 17:23 ·  中国 广东 广州 移动
初级用户
积分 52
发帖 14
注册 2006-08-07 11:43
19年会员
UID 60018
状态 离线
我写了这么一个命令
copy "E:\1.txt" "E:\"niuji_yy/mm/dd".txt"

复制都不成功,为什么?
怎么做才能生成niuji_2006-08-08.txt呢?

初学DOS,请指教,谢谢!
2 发表于 2006-08-08 23:29 ·  中国 四川 成都 鹏博士宽带
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  看你的描述,应该是XP的系统吧?

  copy "E:\1.txt" "E:\niuji_%date%.txt"就可以了。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
3 发表于 2006-08-09 01:08 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
Originally posted by namejm at 2006-8-8 23:29:
  看你的描述,应该是XP的系统吧?

  copy "E:\1.txt" "E:\niuji_%date%.txt"就可以了。


E:\niuji_%date:~0,10%.txt
4 发表于 2006-08-09 08:32 ·  中国 辽宁 大连 教育网
中级用户
★★
DOS之友
积分 332
发帖 168
注册 2005-10-06 00:00
20年会员
UID 43171
性别 男
来自 天涯
状态 离线
for /f "tokens=1, 2, 3, 4 delims=-/. " %%j in ('Date /T') do set FILENAME=srv_%%j_%%k_%%l_%%m
测试环境: windows xp pro sp2 高手是这样炼成的:C:\WINDOWS\Help\ntcmds.chm
5 发表于 2006-08-16 09:10 ·  IANA 局域网IP(Private-Use)
初级用户
积分 52
发帖 14
注册 2006-08-07 11:43
19年会员
UID 60018
状态 离线
谢谢,好用!
6 发表于 2006-08-16 09:42 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
Originally posted by IceCrack at 2006-8-9 08:32:
for /f "tokens=1, 2, 3, 4 delims=-/. " %%j in ('Date /T') do set FILENAME=srv_%%j_%%k_%%l_%%m

太罗嗦,简单点:
set dateN=%date:-=_%
set filename=srv_%dateN: =_%
7 发表于 2006-10-19 11:40 ·  中国 广东 惠州 电信
新手上路
积分 4
发帖 2
注册 2006-10-18 12:20
19年会员
UID 66387
状态 离线
那我想把日期的横杠"-"也去掉呢?该怎样写啊?
8 发表于 2006-10-19 11:55 ·  中国 广东 惠州 电信
新手上路
积分 4
发帖 2
注册 2006-10-18 12:20
19年会员
UID 66387
状态 离线
Originally posted by qiangren at 2006-10-19 11:40:
那我想把日期的横杠"-"也去掉呢?该怎样写啊?

我自己乱式结果搞成如下,不知道有没有更简单的方法呢?
b_%date:~2,2%%date:~5,2%%date:~8,2%.txt
9 发表于 2006-10-19 12:05 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  试试这个代码:

@echo off
set date_=%date:~0,10%
set date__=%date_:-=%
copy "e:\1.txt" niuji_%date__%.txt
10 发表于 2006-10-19 13:40 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
Originally posted by lxmxn at 2006-10-19 00:05:

  试试这个代码:

@echo off
set date_=%date:~0,10%
set date__=%date_:-=%
copy "e:\1.txt" niuji_%date__%.txt

没必要用两个变量,一个就OK

@echo off
set date_=%date:~0,10%
set date_=%date_:-=%
copy "e:\1.txt" niuji_%date_%.txt
11 发表于 2006-10-19 13:44 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  嘿嘿,楼上兄弟可真仔细。
  
  一个两个都一样,反正目的都达到了嘛。而且代码也并没有精简多少。 =_=
12 发表于 2006-10-19 21:28 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
要说精简,那就:
@echo off
set date_=%date:~0,10%
copy "e:\1.txt" niuji_%date_:-=%.txt

少了一行
13 发表于 2006-10-19 21:28 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
点击到“引用回复了”

[ Last edited by zxcv on 2006-10-19 at 09:29 ]
14 发表于 2006-10-20 00:11 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  小弟佩服ing……
15 发表于 2006-10-20 00:38 ·  中国 湖南 衡阳 联通
初级用户
积分 139
发帖 9
注册 2003-08-04 00:00
22年会员
UID 8020
性别 男
状态 离线
借问一个相关问题,如果我是用一位数字表示月份,用16进制,大于9的月用ABCD表示,例如20061019.txt----2006A19.TXT
应该怎么处理才行?
论坛跳转: