中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 09:15
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 主管布置周一交的任务,望高手相助~DOS.BAT文件改名应用程序 查看 4,165 回复 33
16 发表于 2006-10-15 10:55 ·  中国 上海 嘉定区 电信
初级用户
积分 30
发帖 14
注册 2006-10-15 08:13
19年会员
UID 65835
状态 离线
qwe1234567斑竹,您刚才发的2000环境下的程序代码怎么不见了?
17 发表于 2006-10-15 10:56 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
set a=%date:~4,4%%date:~9,2%%date:~12,2%@%time:~0,2%%time:~3,2%%time:~6,2%
ren *.txt *%a%.txt

你如果想把TEST.TXT这个文件修改,只要把*.txt换成test.txt就可以,你如果把这个文件放在你需要改文件名的文件夹里就可以不要路径,还可以改所有的TXT文件名!

[ Last edited by qwe1234567 on 2006-10-15 at 10:57 ]
18 发表于 2006-10-15 11:00 ·  中国 上海 嘉定区 电信
初级用户
积分 30
发帖 14
注册 2006-10-15 08:13
19年会员
UID 65835
状态 离线
非常感谢,周一我看主管到底还有还需要其他特殊功能~~~
19 发表于 2006-10-15 11:00 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
参照qwe1234567版主2K的修改一下:
XP
@echo off
set datetime=%~n1%date:~0,4%%date:~5,2%%date:~8,2%@%time:~0,2%%time:~3,2%%time:~6,2%%~x1
echo %1 %datetime%

2K
@echo off
set datetime=%~n1%date:~4,4%%date:~9,2%%date:~12,2%@%time:~0,2%%time:~3,2%%time:~6,2%%~x1
echo %1 %datetime%

把“echo”改为“copy”、“ren”...
运行方式均为:bat *.txt(带扩展名)
20 发表于 2006-10-15 12:18 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
综合zxcv、qwe1234567版主,DOS.BAT内容
@echo off
if "%1"=="/?" echo 将目标文件名重命名为“源文件名+当前日期+@+时间” &&echo.&&echo 语法: DOS filename &&PING/n 4 127.1>NUL &&exit
if "%1"=="" echo 将目标文件名重命名为“源文件名+当前日期+@+时间” &&echo.&&echo 语法: DOS filename &&PING/n 4 127.1>NUL &&exit
ver|find /i "xp">nul
if not errorlevel 1 set datetime=%~n1%date:~0,4%%date:~5,2%%date:~8,2%@%time:~0,2%%time:~3,2%%time:~6,2%%~x1
ver|find /i "2000">nul
if not errorlevel 1 set datetime=%~n1%date:~4,4%%date:~9,2%%date:~12,2%@%time:~0,2%%time:~3,2%%time:~6,2%%~x1
if "%datetime%"=="" echo 此程序必须在Windows xp或Windows 2000系统上运行 &&ping/n 4 127.1>nul &&exit
echo %1 %datetime%
第一高手 第二高手

21 发表于 2006-10-15 13:00 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
20年会员
UID 50550
状态 离线

On Error Resume Next

Set objArgs = WScript.Arguments
If objArgs.Count < 1 Then
WScript.Echo "用鼠标把文件拖到该文件上或带参数运行!"
WScript.Quit
End If

For Each strFile In objArgs
strNewFile = Mid(strFile,1,InStrRev(strFile,".") _
- 1) & Replace(Date,"-","") & "@" _
& Replace(Time,":","") & _
Mid(strFile,InStrRev(strFile,".") )
If Len(Trim(strNewFile)) = 0 Then
strNewFile = strFile & Replace(Date,"-","") & _
"@" & Replace(Time,":","")
End If
ReName strFile , strNewFile
Next


Sub ReName (strFile,strNewFile)
WScript.Echo strFile & vbLf & strNewFile
CreateObject("Scripting.FileSystemObject") _
.MoveFile strFile,strNewFile
End Sub

拷贝到SendTo,然后把要改的文件全部选定发送到...就行了。
或者在bat里面带多参数调用,可以更改ReName过程下第一句的vblf为","用来显示更改明细以便形成日志.
22 发表于 2006-10-15 22:51 ·  中国 湖北 武汉 电信
初级用户
积分 28
发帖 11
注册 2006-10-12 21:18
19年会员
UID 65492
状态 离线
我这里只有不到上午11点,怎么你们都
2006-10-15 13:00了,
版主啊,服务器时间是不是有问题啊
23 发表于 2006-10-16 22:53 ·  中国 上海 嘉定区 电信
初级用户
积分 30
发帖 14
注册 2006-10-15 08:13
19年会员
UID 65835
状态 离线
各位高手
刚才主管跟我说是在2000 server en 环境下测试的,我copy了下date与time
C:\Documents and Settings\Administrator>date
The current date is: 10/16/2006 Mon
Enter the new date: (mm-dd-yy)

C:\Documents and Settings\Administrator>time
The current time is: 10:44:17.73
Enter the new time:

fastslz,您能登下MSN吗,我想请教你些问题,万分感谢
24 发表于 2006-10-16 23:04 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
25 发表于 2006-10-16 23:13 ·  中国 山西 运城 电信
中级用户
★★
积分 241
发帖 131
注册 2005-09-28 19:01
20年会员
UID 42920
性别 男
状态 离线
@echo off
set /p yy=欲处理文件的路径:
set /p uu=欲处理文件的名称:
for /F "tokens=1-3 delims=/- " %%A in ('date/T') do set DATE=%%A%%B%%C
for /F "tokens=1-2 delims=/: " %%A in ('time/T') do set TIME=%%A%%B
for %%i in (%yy%:\%uu%) do copy %%i %yy%:\%%~ni%DATE%@%TIME%.txt

借用了fastslz的代码,不过加上如上几句,可以处理任何一个盘符的文件!另:欲处理文件的路径: 在显示这句时,盘符不用输入冒号的!
房东说:这娃是个好孩子!
26 发表于 2006-10-17 00:01 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
Originally posted by samzj at 2006-10-16 22:53:
各位高手
刚才主管跟我说是在2000 server en 环境下测试的,我copy了下date与time
C:\Documents and Settings\Administrator>date
The current date is: 10/16/2006 Mon
Enter t ...


英文版的时间顺序不一样的
如果用我的代码把
for /F "tokens=1-3 delims=/- " %%A in ('date/T') do set DATE=%%A%%B%%C

替换成
for /F "tokens=1-3 delims=/- " %%A in ('date/T') do set DATE=%%C%%B%%A

也就换了一下顺序,这个容易掌握
第一高手 第二高手

27 发表于 2006-10-17 01:09 ·  中国 甘肃 平凉 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
这样的问题最好

echo %time%
echo %date%

把这两个显示发上来
28 发表于 2006-10-17 02:21 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
@echo off
set /p lj=欲处理文件的路径:
set /p wjm=欲处理文件的名称:
copy %lj%%wjm% %lj%%wjm%%date:~10,4%%date:~4,2%%date:~7,2%@%time:~0,2%%time:~3,2%%time:~6,2%.txt
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
+4 2006-10-17 04:47
29 发表于 2006-10-17 03:58 ·  中国 上海 嘉定区 电信
初级用户
积分 30
发帖 14
注册 2006-10-15 08:13
19年会员
UID 65835
状态 离线
谢谢各位的热心帮助~~~~
今天在qwe1234567斑竹的远程指导下,最终暂时解决了这个问题,
测试环境 2000 server en

C:\Documents and Settings\Administrator>date
The current date is: 10/16/2006 Mon
Enter the new date: (mm-dd-yy)

C:\Documents and Settings\Administrator>time
The current time is: 15:56:45.35
Enter the new time:


set a=%date:~10,4%%date:~4,2%%date:~7,2%@%time:~0,2%%time:~3,2%%time:~6,2%
copy c:\test.bat test%a%.bat

最终成功,谢谢以上所有回贴帮忙的人!!!!
30 发表于 2006-10-17 03:59 ·  中国 上海 嘉定区 电信
初级用户
积分 30
发帖 14
注册 2006-10-15 08:13
19年会员
UID 65835
状态 离线
以及还要十分感谢fastslz的耐心讲解~~~~~~等等等等
论坛跳转: