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

不理解!
是从A文件夹下提取任意一个文件到b任意一个文件夹
第2次的时候是不是就不能提取文件到上面那个文件夹了?是不是说每个文件夹都要从A下提取一个文件过来!
----------另外文件是一样的吗?都是txt或其他?
---------A文件夹是固定叫A吗?B文件夹是叫B么》?
本人已死!不用联系!~
要联系下来联系!~~

TOP

本帖最后由 jellyhk 于 2011-12-16 11:03 编辑

3楼!
1:为什么3楼的18行代码中的"!%c:"=%!"就变成文件夹了呢?
2:为什么要这么写呢?好象!%c%!也行为什么要多   “=
3:第10行的dir /a-d /b /s A *.*  不能写成dir /a-d /b /s A\*.*
本人已死!不用联系!~
要联系下来联系!~~

TOP

本帖最后由 jellyhk 于 2011-12-16 11:12 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /ad /b /s B\*') do (
  4. set /a a+=1
  5. set !a!=%%a
  6. echo !a!=%%a
  7. )
  8. set /p n=请输入
  9. set /a aa=!n!*!a!
  10. for /f "delims=" %%a in ('dir /a-d /b /s A\*.*') do (
  11. set /a b+=1
  12. set /a c+=1
  13. if "!c!" gtr "!a!" set c=1
  14. call :a "%%a"
  15. if !b! == !n! pause&exit
  16. )
  17. :a
  18. move %1 "!%c:"=%!"
  19. goto :eof
复制代码
这样不知道行不!请看到6楼的问题会的帮忙解惑!
本人已死!不用联系!~
要联系下来联系!~~

TOP

例如A下有1.txt -10.txt
B下有文件夹a b c
set n=2
你现在的意思是:随便移动2个文件放到A\a,再把这2个文件删除吗?  把1.txt 2.txt放到A\a!
    并删除A\下的这2个文件?
再继续移动文件一直到A\下的没有文件?
本人已死!不用联系!~
要联系下来联系!~~

TOP

本帖最后由 jellyhk 于 2011-12-17 16:55 编辑

我郁闷!浪费了我8个小时终于搞定了!算来算去数字光错!头疼!
楼主你要这样的代码有什么用哦!貌似没什么吧!
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p n=输入要复制的本数:
  4. set c=0
  5. for /f "delims=" %%a in ('dir /a-d /s /b a\*.*') do (set /a c+=1)
  6. set /a b=c-n
  7. :l
  8. for /f "delims=" %%a in ('dir /ad /s /b b\*') do (
  9.    set a=0
  10.    for /f "delims=" %%b in ('dir /a-d /s /b a\*.*') do (
  11.      set /a a+=1
  12.      if !a! gtr !b! move "%%b" "%%a"
  13.      if !a! == !c! set /a c-=n&set /a b-=n
  14. )
  15. )
  16. dir /a-d /s /b a\*.*
  17. if errorlevel == 1 (exit) else (goto l)
复制代码
=====================我简化了下
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p n=输入要复制的本数:
  4. :l
  5. for /f "delims=" %%a in ('dir /ad /s /b b\*') do (
  6.    set a=0
  7.    for /f "delims=" %%b in ('dir /a-d /s /b a\*.*') do (
  8.      set /a a+=1
  9.      if !a! leq !n! move "%%b" "%%a"  
  10. )
  11. )
  12. dir /a-d /s /b a\*.*
  13. if errorlevel == 1 (exit) else (goto l)
复制代码
本人已死!不用联系!~
要联系下来联系!~~

TOP

[已解决]批处理文件替换变量为空怎么就变身为文件夹了?

这是题目http://bathome.net/thread-14993-1-1.html
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /ad /b /s B\*') do (
  4. set /a a+=1
  5. set !a!=%%a
  6. echo !a!=%%a
  7. )
  8. set /p n=请输入
  9. set /a aa=!n!*!a!
  10. for /f "delims=" %%a in ('dir /a-d /b /s A\*.*') do (
  11. set /a b+=1
  12. set /a c+=1
  13. if "!c!" gtr "!a!" set c=1
  14. call :a "%%a"
  15. if !b! == !n! pause&exit
  16. )
  17. :a
  18. move %1 "!%c:"=%!"
  19. goto :eof
复制代码
第18段!中的"!%c:"=%!"不懂!
我知道单独的“%c:"=%”这是把变量c里的"去掉!但是代码中外面加  !!  干什么?例外这代码怎么就成了目录了?
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2
本人已死!不用联系!~
要联系下来联系!~~

TOP

回复 2# canyuexiaolang
错了吧!
本人已死!不用联系!~
要联系下来联系!~~

TOP

回复 4# awk
他的执行结果就是dir /s /ad /b d\*  这个执行结果!只是他是1个1个用有点象for例如:
move 1.txt 1
move 2.txt a
本人已死!不用联系!~
要联系下来联系!~~

TOP

返回列表