[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 批处理根据计算产生子文件夹

大家好,我公司不能上网只能发邮件。我现在是用手机发贴子,没有触摸屏打字好辛苦,有违版规的地方请版主见谅。
我的实际问题:我每天在公司主机分配给我的文件夹\\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能计算成功并成为文件夹的名字呢?我试了很久都搞不定。请高手帮忙不胜感激!

用手机打字没法排版请各位见谅。诺基亚的键盘好难按,手指生疼。

  1. @echo off
  2. set FolderNum=0
  3. for /f %%a in ('dir /b /ad "f:\数据回溯\%date%"') do (
  4.   set /a FolderNum+=1
  5. )
  6. echo 今天文件夹的数量是:%FolderNum%
  7. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

%date% 的格式 2009-04-19 星期日
:
  1. @echo off&set /a n=0
  2. set "wjj=%date:~0,10%"
  3. :loop
  4. set /a n+=1
  5. if exist "f:\数据回溯\%wjj%\%n%\" goto loop
  6. md "f:\数据回溯\%%date:~0,10%\%n%"
  7. copy /y "源文件全路径及文件全名" "f:\数据回溯\%wjj%\%n%"
  8. pause
复制代码
技术问题请到论坛发帖求助!

TOP

创建根据时间命名的文件夹不是更好

我觉得你可以这样考虑啊,不一定文件夹命名为1、2、3。用当前的时间不是很好。
每次运行都用日期作为母文件夹,用几点几分作为子文件夹。
我这里写了一个获取时间作为文件夹名的代码中的一小段。你参考下。结合自己的需要写写咯。
  1. set d=%date:~0,10%
  2. set t1=%time:~0,2%
  3. set t2=%time:~4,1%
  4. set t=%t1%时%t2%分
  5. md f:\数据回溯\%d%\%t%
  6. f:
  7. cd f:\数据回溯\%d%\%t%
复制代码
你试试看。

如果你要定期运行,就结合windows的计划任务吧。

我们编辑批处理的目的是要方便。系统能完成的我们还是让系统自己完成。

[ 本帖最后由 htnet11 于 2009-4-20 11:44 编辑 ]

TOP

返回列表