标题: [数值计算] 批处理根据计算产生子文件夹 [打印本页]
作者: zcdwzcdw 时间: 2009-4-19 21:12 标题: 批处理根据计算产生子文件夹
大家好,我公司不能上网只能发邮件。我现在是用手机发贴子,没有触摸屏打字好辛苦,有违版规的地方请版主见谅。
我的实际问题:我每天在公司主机分配给我的文件夹\\centerdatabase\storehousemanager里操作若干文件。因我的文件涉及敏感数据,并且更新很快,同时有很多部门调用,所以我希望在我的电脑创建一个文件夹f:\数据回溯,然后写这样一个批处理:在某日运行第一次,创建%date%文件夹,并在里面创建1子文件夹,将公司主机上的文件拷到f:\数据回溯\%date%\1里面,运行第二次,创建f:\数据回溯\%date%\2并把文件拷进去,依次类推,每点一次批处理它就保存一次并且在不同的文件夹(不会覆盖以往的文件)。
我只想到一点但是写不齐:
md f:\数据回溯\%date%
cd f:\数据回溯\%date%
dir|find "<DIR>" /c ---这行会输出2,也就是当前目录中文件夹个数+2,这样只要能使(dir|find "<DIR>" /c)-1成为MD能识别的参数即可,但是如何使用set设定(dir|find "<DIR>" /c)-1能计算成功并成为文件夹的名字呢?我试了很久都搞不定。请高手帮忙不胜感激!
用手机打字没法排版请各位见谅。诺基亚的键盘好难按,手指生疼。
作者: Batcher 时间: 2009-4-19 21:30
- @echo off
- set FolderNum=0
- for /f %%a in ('dir /b /ad "f:\数据回溯\%date%"') do (
- set /a FolderNum+=1
- )
- echo 今天文件夹的数量是:%FolderNum%
- pause
复制代码
作者: 随风 时间: 2009-4-19 21:40
%date% 的格式 2009-04-19 星期日
:- @echo off&set /a n=0
- set "wjj=%date:~0,10%"
- :loop
- set /a n+=1
- if exist "f:\数据回溯\%wjj%\%n%\" goto loop
- md "f:\数据回溯\%%date:~0,10%\%n%"
- copy /y "源文件全路径及文件全名" "f:\数据回溯\%wjj%\%n%"
- pause
复制代码
作者: htnet11 时间: 2009-4-20 11:42 标题: 创建根据时间命名的文件夹不是更好
我觉得你可以这样考虑啊,不一定文件夹命名为1、2、3。用当前的时间不是很好。
每次运行都用日期作为母文件夹,用几点几分作为子文件夹。
我这里写了一个获取时间作为文件夹名的代码中的一小段。你参考下。结合自己的需要写写咯。- set d=%date:~0,10%
- set t1=%time:~0,2%
- set t2=%time:~4,1%
- set t=%t1%时%t2%分
- md f:\数据回溯\%d%\%t%
- f:
- cd f:\数据回溯\%d%\%t%
复制代码
你试试看。
如果你要定期运行,就结合windows的计划任务吧。
我们编辑批处理的目的是要方便。系统能完成的我们还是让系统自己完成。
[ 本帖最后由 htnet11 于 2009-4-20 11:44 编辑 ]
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |