中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 一个我认为很难的问题求助(更新)
« [1] [2] »
作者:
标题: 一个我认为很难的问题求助(更新) 上一主题 | 下一主题
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 16 楼』:  

不知道对你有用不 至于删文件 应该一样判断
@echo off
set Files=%date:~0,4%%date:~5,2%%date:~8,2%
if not exist %Files%\ md %Files%
for /r jhsj %%i in (*.*) do set t=%%~ti &set p=%%~pi&call :loop "%%~fi"
pause
goto :eof
:loop
set p=%p:~5%
echo %p%
if "%Files%"=="%t:~0,4%%t:~5,2%%t:~8,2%" xcopy %~1 %Files%%p% /Y /H /R



简单!简单!再简单!
2008-1-20 16:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fzp1978321
初级用户





积分 110
发帖 50
注册 2008-1-18
状态 离线
『第 17 楼』:  



  Quote:
Originally posted by everest79 at 2008-1-20 04:38 PM:
判断date是否为周一再执行
del /s /q /f D:\jhsj就可以了

是直接加在rar a -agYYYYMMDD -tn1D f:\bak\ 后面么?
还是另外再建个批处理,然后添加到任务计划中?

[ Last edited by fzp1978321 on 2008-1-20 at 10:45 PM ]

2008-1-20 22:41
查看资料  发送邮件  发短消息 网志  OICQ (195690504)  编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 18 楼』:  

rar -a -agYYYYMMDD -tn1D F:\bak\ D:\jhsj
if not date goto :eof
del /s /q /f D:\jhsj

2008-1-21 01:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fzp1978321
初级用户





积分 110
发帖 50
注册 2008-1-18
状态 离线
『第 19 楼』:  

rar -a -agYYYYMMDD -tn1D F:\bak\ D:\jhsj

这句能正确执行,
但是执行if not date goto :eof
            del /s /q /f D:\jhsj
就出错了,一闪而过.

如果是
rar -a -agYYYYMMDD -tn1D F:\bak\ D:\jhsj
if not date goto :eof
del /s /q /f D:\jhsj
执行,就全部出错,没有任何反应.

2008-1-21 01:19
查看资料  发送邮件  发短消息 网志  OICQ (195690504)  编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 20 楼』:  

if not date 这句是样例,因为我不知道2k下的date输出格式是怎么样的
像在xp下判断是否为周一是这样的
if not "%date:~-1%" == "一" goto :eof
del /s /q /f D:\jhsj

echo %date% 显示为 2008-01-21 星期一
echo %date:~-1% 显示为 一

2008-1-21 01:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 21 楼』:  

删除7天前文件(日期判断不是很准  因为有特殊日) COPY当天文件到当天文件夹 不知道是这样的要求否?
@echo off
set Files=%date:~0,4%%date:~5,2%%date:~8,2%
if not exist %Files%\ md %Files%
set p1=%Files:~0,4%
set p2=%Files:~4,2%
set p3=%Files:~6,2%
setlocal enabledelayedexpansion
for /l %%a in (1,1,3) do (
for /f "delims=0 tokens=*" %%i in ("!p%%a!") do set p%%a=%%i
)
call :loop1
set p2=0%t2%
set p2=%p2:~-2,2%
set p3=0%t3%
set p3=%p3:~-2,2%
for /r jhsj %%i in (*.*) do set t=%%~ti &set p=%%~pi&call :loop2 "%%~fi"
pause
goto :eof
:loop1
if %p3% lss 7 (
if %p2% EQU 1 set t2=12&set/a p1-=1&set/a t3=%p3%+24&goto :eof
if %p2% EQU 3 set/a t3=%p3%+21&set/a t2=%p2%-1&goto :eof
for %%p in (5 7 10 12) do if %p2% EQU %%p set/a t3=%p3%+23&set/a t2=%p2%-1&goto :eof
set/a t2=%p2%-1&set/a t3=%p3%+24&goto :eof
)
set t2=%p2%&set/a t3=%p3%-7&goto :eof
:loop2
set p=%p:~5%
if "%Files%"=="%t:~0,4%%t:~5,2%%t:~8,2%" xcopy %1 %Files%%p% /Y /H /R >nul
if %t:~0,4%%t:~5,2%%t:~8,2% LEQ %p1%%p2%%p3% del %1
goto :eof




简单!简单!再简单!
2008-1-21 01:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fzp1978321
初级用户





积分 110
发帖 50
注册 2008-1-18
状态 离线
『第 22 楼』:  

噢,我明白了
那我把if not date,中的date,在WIN 下改成"%date:~*%"== "一" goto :eof
(*)是代表在WIN2000下的DATE输出格式.
如果正确的写出*该代表的值,那就OK了,是吧?
EVEREST79你真的很牛,我简直都要对你进行膜拜了!

2008-1-21 01:40
查看资料  发送邮件  发短消息 网志  OICQ (195690504)  编辑帖子  回复  引用回复
fzp1978321
初级用户





积分 110
发帖 50
注册 2008-1-18
状态 离线
『第 23 楼』:  



  Quote:
Originally posted by terse at 2008-1-21 01:35 AM:
删除7天前文件(日期判断不是很准  因为有特殊日) COPY当天文件到当天文件夹 不知道是这样的要求否?
[code]
@echo off
set Files=%date:~0,4%%date:~5,2%%date:~8,2 ...

恩,是这样的要求.很感谢你的热心,让我又学到不少技巧!

2008-1-21 01:43
查看资料  发送邮件  发短消息 网志  OICQ (195690504)  编辑帖子  回复  引用回复
fzp1978321
初级用户





积分 110
发帖 50
注册 2008-1-18
状态 离线
『第 24 楼』:  

EVEREST79,你能解释下  rar -a -agYYYYMMDD -tn1D F:\bak\ D:\jhsj这语句中 rar -a -agYYYYMMDD -tn1D的意思么?事情虽然做成了,但是对这条语句,我还没懂起,麻烦赐教!

2008-1-21 01:59
查看资料  发送邮件  发短消息 网志  OICQ (195690504)  编辑帖子  回复  引用回复
fzp1978321
初级用户





积分 110
发帖 50
注册 2008-1-18
状态 离线
『第 25 楼』:  

-tn1D这个我没看明白,不懂

2008-1-21 02:08
查看资料  发送邮件  发短消息 网志  OICQ (195690504)  编辑帖子  回复  引用回复
fzp1978321
初级用户





积分 110
发帖 50
注册 2008-1-18
状态 离线
『第 26 楼』:  

问题又来了.在WIN2000下
echo
rar -a -agYYYYMMDD -tn1D F:\bak\ D:\jhsj
if not "%date:~2,1%" == "一" goto :eof
del /s /q /f D:\jhsj

执行,结果,备份和压缩文件正确,但是往下继续执行if not "%date:~2,1%" == "一" goto :eof就没执行了,一闪而过.
"%date:~2,1%"的显示为"一"(WIN 2000下)
这是为什么啊,应该是对了的啊

2008-1-21 12:33
查看资料  发送邮件  发短消息 网志  OICQ (195690504)  编辑帖子  回复  引用回复
fzp1978321
初级用户





积分 110
发帖 50
注册 2008-1-18
状态 离线
『第 27 楼』:  

everest79,请问一下,如果我把文件夹JHSJ名换成中文"建户数据",就提取不了文件夹名了而且数据提取不进行了,应该如何去识别中文的文件夹名呢?

rar a -agYYYYMMDD -tn1D D:\bak\ D:\建户数据
如果这样写,就会出错,是为什么啊?

2008-1-21 14:31
查看资料  发送邮件  发短消息 网志  OICQ (195690504)  编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: