标题: [文件操作] [已解决]批处理如何实现建立文件夹并转移文件? [打印本页]
作者: 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
不是高手- @echo off
- setlocal enabledelayedexpansion
- for %%i in (*.jpg) do (
- call :div %%~zi 1048576 3 n
- set dirname=%%~ni [!n!M]
- mkdir "!dirname!"
- move %%~ni.txt ".\!dirname!"
- move %%~ni.jpg ".\!dirname!"
- )
- pause & goto :eof
-
- :div
- setlocal enabledelayedexpansion
- set /a a = %1, b = %2, c = %3, d = a / b, e = a %% b * 10
- set r=%d%.
- for /l %%i in (1, 1, %c%) do (
- set /a d = e / b, e = e %% b * 10
- set r=!r!!d!
- )
- endlocal & set %4=%r%
复制代码
作者: lingyun007 时间: 2012-7-23 17:30
非常感谢两位高手,虽然看不太懂,但是实现了结果。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |