vb等效于\ *。 (.bat文件)?

时间:2019-01-29 20:12:44

标签: vbscript

我决定重新设计我的应用程序,我几乎将所有的.bat文件“翻译”为.vbs文件,但是下面的bat脚本对我来说是个大问题

@ECHO OFF   
move "..\Styles\DropWall\*.jpg" "..\..\chrome\OPCEN\images\WALLPERSONA\TranscodedWallpaper.jpg"     
move "..\Styles\DropWall\*.png" "..\..\chrome\OPCEN\images\WALLPERSONA\TranscodedWallpaper.jpg" 
exit

我已经使用它来移动已知文件,请确保我缺少一些东西

Option Explicit
Dim Fso 
Set Fso= WScript.CreateObject("Scripting.FileSystemObject") 
Fso.MoveFile "..\Styles\DropWall\AB.jpg", "..\..\chrome\OPCEN\images\WALLPERSONA\TranscodedWallpaper.jpg"

1 个答案:

答案 0 :(得分:1)

VBScript FileSystemObject方法没有与“从源目录复制任何.jpg文件作为目标目录中的此特定输出文件”的直接等效项。您可以将所有 .jpg文件从给定的源目录移动到给定的目标目录(不重命名文件):

Set fso = CreateObject("Scripting.FileSystemObject") 
fso.MoveFile "C:\source\*.jpg", "C:\destination\"

但是要移动具有匹配扩展名的任何文件,您需要如下所示:

Set fso = CreateObject("Scripting.FileSystemObject") 
For Each f In fso.GetFolder("C:\source").Files
    If LCase(fso.GetExtensionName(f)) = "jpg" Then
        f.Copy "C:\destination\bar.jpg", True
        f.Delete
    End If
Next

推荐使用CopyDelete的组合,因为Move(或MoveFile)不允许替换现有文件,这意味着如果存在源文件夹中有多个匹配文件,移动第二个文件会引发错误。