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

[文件操作] [已解决]批处理如何实现建立文件夹并转移文件?

本帖最后由 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文件的大小。
以此类推。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 乱码 于 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我不会、
1

评分人数

求老大赐我《精通正则表达式》

TOP

不是高手
  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%
复制代码
1

评分人数

TOP

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

TOP

返回列表