|
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 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
fzp1978321
初级用户
积分 110
发帖 50
注册 2008-1-18
状态 离线
|
『第
25 楼』:
-tn1D这个我没看明白,不懂
|
|
2008-1-21 02:08 |
|
|
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 |
|
|
fzp1978321
初级用户
积分 110
发帖 50
注册 2008-1-18
状态 离线
|
『第
27 楼』:
everest79,请问一下,如果我把文件夹JHSJ名换成中文"建户数据",就提取不了文件夹名了而且数据提取不进行了,应该如何去识别中文的文件夹名呢?
rar a -agYYYYMMDD -tn1D D:\bak\ D:\建户数据
如果这样写,就会出错,是为什么啊?
|
|
2008-1-21 14:31 |
|