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

回复 15楼 的帖子

大家来论坛是为了互相切磋、讨论批处理,无所谓什么得罪不得罪的。
下次如果有问题需要拿出来讨论,别忘了在顶楼把问题背景描述清楚就是了。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 楼主

如果你是通过回帖中某个完整代码解决的,请说明是谁的代码解决了你的问题。
如果你是通过某人的代码思路解决的,也请说明。(最好能附上完整代码)
如果你是自行解决的,方便的话最好也能把代码分享一下。

问题解决了,既然发了帖求助,那么请为后来人想想,
如果有人遇到同样问题能直接通过你的这个帖解决不是更好吗。
论坛之所以对标题及回帖管理这么严格就是方便后来人,或者说把已经发的帖作为论坛资源。
试想如果日后有人因同样问题搜索到该帖,他该如何解决他的问题呢?

另:
偶觉得你们在编代码时,都没有自己测试过,觉得这样很不负责的,虽是有苦劳,可是完全不留意一下发贴人的感受,完全在想我是无私帮你,不管怎么你都要对我毕恭毕敬,偶是个直肠子的,如果是这样,宁可不回贴
楼主这话说的是否偏激了一点?
对于一个bat老手来说,有很多代码是不需要测试的,不能与你预期的结果一样,也并不能说明别人就没有测试代码,有可能是你的题意描述不清,也有可能是别人对你的题意理解有误。即便是别人写代码时考虑不周,你测试后把问题再回帖说明一下又怎么了?难道你真的是一字千金?如此吝啬?
直肠子和烈性子 都不是坏毛病,但绝不能成为自己行为的一种理由。
别的不说,就说本人11楼的回帖,就是经过测试的,楼主却未对该帖进行任何反馈,为何?就因为你的问题已经解决了?别人的回复已经是多此一举了?
总的来说对楼主的这种“求助”态度不敢恭维,我也是个直肠子和烈性子,如有什么地方得罪的,还请楼主海涵。
技术问题请到论坛发帖求助!

TOP

。。。好吧。。。有些问题我不想再作评论。。。

事实上,我写5楼代码的时候的确没测试。因为“以前在xcopy命令上折腾过”(http://bbs.verybat.org/viewthread.php?tid=13802&fromuid=37),有过一些经验,所以感觉用不着测试。而代码中有一个字符写漏了,我是特意不想修改。

仅讨论一下代码本身。楼主提到:
如果有多个层的子目录就会出错,原本是第三层的子文件夹内的jpg文件,复制过来后,却成了第二层,其它层的也有类似的情况。

这种情况我倒没有碰到过。再次测试xcopy /s /e "%cd%\a\*.txt" "%cd%\b\" 的结果:

C:\>tree /f a
文件夹 PATH 列表
卷序列号为 A442-A07A
C:\A
│  11.txt

├─11
│  │  21.txt
│  │
│  ├─21
│  │  │  21.txt
│  │  │
│  │  ├─31
│  │  │      31.txt
│  │  │
│  │  └─32
│  └─22
└─12
C:\>tree /f b
文件夹 PATH 列表
卷序列号为 A442-A07A
C:\B
│  11.txt

├─11
│  │  21.txt
│  │
│  ├─21
│  │  │  21.txt
│  │  │
│  │  ├─31
│  │  │      31.txt
│  │  │
│  │  └─32
│  └─22
└─12


[ 本帖最后由 zqz0012005 于 2009-4-6 19:37 编辑 ]
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

楼上说得是,我确实没有看过你的代码,刚刚测试了一下,很好,代码比我那三个批要少得多,为了方便后来者,我现在把代码贴出,我自己那三个批就不贴出现丑了,感谢随风大哥的代码!
  1. @echo off
  2. ::目的文件夹名为 temp
  3. set wjj=temp
  4. ::复制文件夹及子文件夹
  5. for /f "delims=" %%a in ('dir/b/s/ad') do (
  6. if not exist "%wjj%\" md "%wjj%"
  7. set "var=%%a"
  8. setlocal enabledelayedexpansion
  9. set var=!var:*%cd%=!
  10. md "%wjj%!var!"
  11. endlocal
  12. )
  13. ::复制 jpg 和 gif 文件
  14. for /f "delims=" %%a in ('dir/b/s/a-d *.jpg *.gif') do (
  15. set "var=%%a"
  16. setlocal enabledelayedexpansion
  17. set var=!var:*%cd%=!
  18. copy /y "%%a" "%wjj%!var!"
  19. endlocal
  20. )
  21. pause
  22. 已经经过测试,代码正确!
复制代码

TOP

zqz0012005   ,因为已经有了随风的代码,我就不特意改成批处理测试了,18楼的代码,我早前就已经在cmd窗口测试过了,正确!可能是我在写批处理时有漏洞了吧,谢谢 zqz0012005 ,早先的话语过激,还望海涵我这粗人。

TOP

经cn-dos里一会员的提醒,可以更简洁高效。
  1. @echo off
  2. ::目的文件夹名为 temp
  3. set wjj=temp
  4. for /f "delims=" %%a in ('dir/b/s/ad') do (
  5.    if not exist "%wjj%\" md "%wjj%"
  6.    set "var=%%a"
  7.    setlocal enabledelayedexpansion
  8.    set var=!var:*%cd%=!
  9.    md "%wjj%!var!"
  10.    copy /y "%%a\*.jpg" "%wjj%!var!" >nul 2>nul
  11.    copy /y "%%a\*.gif" "%wjj%!var!" >nul 2>nul
  12.    endlocal
  13. )
  14. copy /y "*.jpg" "temp" >nul 2>nul
  15. copy /y "*.gif" "temp" >nul 2>nul
  16. pause
复制代码

[ 本帖最后由 随风 于 2009-4-7 13:38 编辑 ]
1

评分人数

技术问题请到论坛发帖求助!

TOP

因为要全盘复制另一个手机卡的文件结构到新卡,正好用上,多谢楼上诸位高手!
不过回楼上两位,似乎"%wjj%!var!" ——应该为"%wjj%\!var!" 你们少了一个斜杠?

TOP

大大能给我一份么 ,我也需要这样的批处理 ,小弟不会批处理

TOP

返回列表