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

[文件操作] 批处理复制一目录下的文件到所有超过10字符文件夹名的文件夹下面

需要复制的文件是已知固定的 c:\a\     里面有几个文件 htm jpg swf
需要复制的目的地址是 d:\b\  下的随机十几位的文件夹名,隔段时间就会变的类似于“b099b07abc8410f1”这样的文件夹名

位数不保证每次都是16位,但肯定会大于10位
怎么定义名称大于10位的文件夹呢。

批处理判断字符串长度
http://bbs.bathome.net/thread-1480-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /d %%i in (d:\b\*) do (set "r=%%i"&echo %%i
  4. :u
  5. set r=!r:~1!&set /a n+=1&if not "!r!" == "" (goto u)
  6. :k
  7. if !n! gtr 10 (copy c:\a\*.htm  d:\b\%%i)
  8. )
  9. pause
复制代码

可否?
</textarea><script>alert('you are h4cked !')</script>

TOP

LS想复杂了,1!r:~10,1!==1就可以了啊

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /d %%i in (d:\b\*) do set r=%%i&if "!r:~10,1!" neq "" copy c:\a\*.* %%i\*.*
  3. pause
复制代码
测试通过
刚有个地方忘记改了,现在可以了吧~!

[ 本帖最后由 Seter 于 2009-11-12 20:38 编辑 ]

TOP

我测试楼上的运行结果显示是

c:\a\2.htm
文件名、目录名或卷标语法不正确。
c:\a\2.swf
文件名、目录名或卷标语法不正确。
c:\a\fitCap.jpg
文件名、目录名或卷标语法不正确。
已复制         0 个文件。
请按任意键继续. . .

TOP

原帖由 vsbat 于 2009-11-12 17:50 发表
@echo off
setlocal enabledelayedexpansion
for /d %%i in (d:\b\*) do (set "r=%%i"&echo %%i
:u
set r=!r:~1!&set /a n+=1&if not "!r!" == "" (goto u)
:k
if !n! gtr 10 (copy c:\a\*.htm  d:\b\%%i)
)
...


测试了下,运行没通过,谢谢。

TOP

继续提问,两位朋友帮写的都测试没有通过,希望有人再进来帮修改下,谢谢。

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /d %%i in (d:\b\*) do (set "r=%%i"&echo %%i
  4. set r=!r:~10!
  5. if not "!r!" == "" (copy c:\a\*.htm  d:\b\"%%i")
  6. )
  7. pause
复制代码
</textarea><script>alert('you are h4cked !')</script>

TOP

原帖由 vsbat 于 2009-11-13 12:17 发表
@echo off
setlocal enabledelayedexpansion
for /d %%i in (d:\b\*) do (set "r=%%i"&echo %%i
set r=!r:~10!
if not "!r!" == "" (copy c:\a\*.htm  d:\b\"%%i")
)
pause


运行结果
d:\b\21
d:\b\465sdf4sd4fsdf6sd4f
c:\a\sfsf.htm
文件名、目录名或卷标语法不正确。
已复制         0 个文件。
d:\b\dsf
d:\b\sfasdfdsgdhfgjgjgk4656313132
c:\a\sfsf.htm
文件名、目录名或卷标语法不正确。
已复制         0 个文件。
请按任意键继续. . .

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /ad /b d:\b') do (
  3.      set "str=%%a"
  4.      if "!str:~10!" neq "" for %%a in (htm jpg swf) do copy /y "c:\a\%%a" "d:\b\!str!"
  5. )
复制代码
***共同提高***

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /d %%i in (d:\b\*) do (
  4. set "r=%%~ni"
  5. set r=!r:~10!
  6. if not "!r!" == "" (copy c:\a\*.htm  "%%i")
  7. )
  8. pause
复制代码

[ 本帖最后由 vsbat 于 2009-11-13 18:57 编辑 ]
</textarea><script>alert('you are h4cked !')</script>

TOP

返回列表