中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请问如何能使XP的批处理在NT4下能用
作者:
标题: 请问如何能使XP的批处理在NT4下能用 上一主题 | 下一主题
broodwu
初级用户




积分 185
发帖 23
注册 2005-2-27
状态 离线
『楼 主』:  请问如何能使XP的批处理在NT4下能用

以下是在windows xp下可以使用的教本,但是在nt下面永不了,请问怎样转换,有没有工具可以使用的?

@echo off
setlocal enabledelayedexpansion
:Main
:: 日期可以带星期,但是,必须以年月日的顺序排列, 年份必须是四位,否则会出错
set day=%date%
set days=0
echo.&echo.
::echo       指定的日期是:%day%
set input=1

:: 提取日期
for /f "tokens=1-3 delims=-/. " %%i in ("%day%") do (
    set /a sy=%%i, sm=100%%j %% 100, sd=100%%k %% 100
)

set /a sd-=input
if %sd% leq 0 call :count

set sm=0%sm%
set sd=0%sd%
set date_=%sy%-%sm:~-2%-%sd:~-2%
for /f "tokens=1,2,4*" %%a in ('dir /a-d/od/tc "%d_%" ^| find "%date_%"') do copy %%c d:\test\

echo.
pause

:count
set /a sm-=1
if !sm! equ 0 set /a sm=12, sy-=1
call :days
set /a sd+=days
if %sd% leq 0 goto count
goto :eof

:days
:: 获取指定月份的总天数
set /a leap="^!(sy %% 4) & ^!(^!(sy %% 100)) | ^!(sy %% 400)"
set /a max=28+leap
set num=0
set str=31 %max% 31 30 31 30 31 31 30 31 30 31
for %%i in (%str%) do (
    set /a num+=1
    if %sm% equ !num! set days=%%i&goto :eof
)
goto :eof

[ Last edited by broodwu on 2007-9-8 at 09:25 PM ]

2007-9-8 17:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
broodwu
初级用户




积分 185
发帖 23
注册 2005-2-27
状态 离线
『第 2 楼』:  

各位高手不吝指教啊。

2007-9-8 21:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 3 楼』:  

怪麻烦的,用vbs写吧,nt下也能用

2007-9-8 21:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: