Board logo

标题: [文件操作] [已解决]批处理如何实现建立文件夹并转移文件? [打印本页]

作者: lingyun007    时间: 2012-7-23 14:56     标题: [已解决]批处理如何实现建立文件夹并转移文件?

本帖最后由 lingyun007 于 2012-7-23 17:35 编辑

请高手赐教!
现有一文件夹内有*.txt和*.jpg两种文件,即文件名相同的两类文件,现在需要创建新文件夹,文件夹名与文件名相同并增加文件大小,同时将两个文件名相同的文件转移到新建的文件夹中。

例如:A文件夹中有111.txt、222.txt、333.txt……111.jpg、222.jpg、333.jpg……等文件
      需要创建文件夹“111 [1.201M]”,将111.txt和111.jpg两个文件放入。1.201M为111.jpg文件的大小。
      需要创建文件夹“222 [1.333M]”,将222.txt和222.jpg两个文件放入。1.333M为222.jpg文件的大小。
      需要创建文件夹“333 [1.054M]”,将333.txt和333.jpg两个文件放入。1.054M为222.jpg文件的大小。
以此类推。
作者: 乱码    时间: 2012-7-23 15:32

本帖最后由 乱码 于 2012-7-23 15:36 编辑
Set fso = CreateObject("Scripting.FileSystemObject")
For Each x In fso.GetFolder(".").Files
'遍历本文件夹所有文件
   
If LCase(fso.GetExtensionName(x.Name)) = "txt" Then '如果是txt就进行操作
        
BaseName = fso.GetBaseName(x.Name) '获取文件名
        
Set jpg = fso.GetFile(BaseName & ".jpg") '获取同名图片
        
folderName = BaseName & " [" & Int((jpg.Size/1024/1024)*1000)/1000 & "M]" '生成文件夹名称
        
If Not fso.FolderExists(folderName) Then fso.CreateFolder folderName '没有该文件夹就创建
        
x.Move folderName & "\" '移动txt到同名文件夹下
        
jpg.Move folderName & "\" '移动jpg到同名文件夹下
   
End If
Next
MsgBox "OK"


试试看这个vbs脚本,bat我不会、
作者: Demon    时间: 2012-7-23 16:08

不是高手
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%i in (*.jpg) do (
  4.     call :div %%~zi 1048576 3 n
  5.     set dirname=%%~ni [!n!M]
  6.     mkdir "!dirname!"
  7.     move  %%~ni.txt ".\!dirname!"
  8.     move  %%~ni.jpg ".\!dirname!"
  9. )
  10. pause & goto :eof
  11. :div
  12. setlocal enabledelayedexpansion
  13. set /a a = %1, b = %2, c = %3, d = a / b, e = a %% b * 10
  14. set r=%d%.
  15. for /l %%i in (1, 1, %c%) do (
  16.     set /a d = e / b, e = e %% b * 10
  17.     set r=!r!!d!
  18. )
  19. endlocal & set %4=%r%
复制代码

作者: lingyun007    时间: 2012-7-23 17:30

非常感谢两位高手,虽然看不太懂,但是实现了结果。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2