File VBS脚本获取所有图像并为副本添加值
我希望在不指定文件夹的情况下从E:\驱动器中获取所有文件。我想让脚本抓取E:drive中的所有文件。这是我的剧本。我试过多种方法来写它,但都没成功。这是我的脚本,它通过抓取驱动器内的文件夹来工作。第二个是我试图修改以使其正常工作的。任何帮助都将不胜感激File VBS脚本获取所有图像并为副本添加值,file,vbscript,directory,File,Vbscript,Directory,我希望在不指定文件夹的情况下从E:\驱动器中获取所有文件。我想让脚本抓取E:drive中的所有文件。这是我的剧本。我试过多种方法来写它,但都没成功。这是我的脚本,它通过抓取驱动器内的文件夹来工作。第二个是我试图修改以使其正常工作的。任何帮助都将不胜感激 Set fso = CreateObject("Scripting.FileSystemObject") testfolder = ".\allpictures" 'fso.CreateFolder(testfolder) CopyF
Set fso = CreateObject("Scripting.FileSystemObject")
testfolder = ".\allpictures"
'fso.CreateFolder(testfolder)
CopyFiles fso.GetFolder("C:\Users\virix\Desktop\mytest")
Sub CopyFiles(fldr)
For Each f In fldr.Files
basename = fso.GetBaseName(f)
extension = fso.GetExtensionName(f)
If LCase(extension) = "jpg" or LCase(extension) = "jpeg" Then
dest = fso.BuildPath(testfolder, f.Name)
count = 0
Do While fso.FileExists(dest)
count = count + 1
dest = fso.BuildPath(testfolder, basename & "_" & count & "." _
& extension)
Loop
f.Copy dest
End If
Next
For Each sf In fldr.SubFolders
CopyFiles sf
Next
End Sub
这是我修改过的,但不能工作
Set fso = CreateObject("Scripting.FileSystemObject")
testfolder = ".\allpictures"
'fso.CreateFolder(testfolder)
StartCopy fso.GetDrive("E:\")
Sub StartCopy(fldr)
For Each f In fldr.Files
basename = fso.GetBaseName(f)
extension = fso.GetExtensionName(f)
If LCase(extension) = "jpeg" or LCase(extension) = "jpg" Then
dest = fso.BuildPath(testfolder, f.Name)
count = 0
Do While fso.FileExists(dest)
count = count + 1
dest = fso.BuildPath(testfolder, basename & "_" & count & "." _
& extension)
Loop
f.Copy dest
End If
Next
For Each sf In fldr.SubFolders
StartCopy sf
Next
End Sub
试试这个:
Set fso = CreateObject("Scripting.FileSystemObject")
testfolder = ".\allpictures"
'fso.CreateFolder(testfolder)
StartCopy fso.GetFolder("E:\")
Sub StartCopy(fldr)
For Each Subfolder in fldr.SubFolders
For Each f In fldr.Files
basename = fso.GetBaseName(f)
extension = fso.GetExtensionName(f)
If LCase(extension) = "jpeg" or LCase(extension) = "jpg" Then
dest = fso.BuildPath(testfolder, f.Name)
count = 0
Do While fso.FileExists(dest)
count = count + 1
dest = fso.BuildPath(testfolder, basename & "_" & count & "." _
& extension)
Loop
f.Copy dest
End If
Next
StartCopy Subfolder
Next
For Each sf In fldr.SubFolders
StartCopy sf
Next
End Sub
不,这仍然不起作用,这最近给我带来了真正的问题,我很困惑为什么它总是在我身上破裂。E是一个外部驱动器,我不确定这是否会产生影响。我想在我的硬盘和外部设备上使用它,但不确定它为什么会坏。你确定你有E盘吗?是的,我确定我只是把它弄得有点乱。我试过驾驶C,它成功了,所以我不知道为什么它不能在E上工作,当我知道它在那里时,它一直说路径没有找到,这让我很困惑为什么它找不到它。我甚至在硬盘上列出了我的卷,只是为了确保它能显示出来。我试着把它写成E:和E:\,但还是没能成功。E是我添加的一个额外硬盘,我知道它可以工作,而且是可视的。它标记为备份(e:)。我不知道为什么它不工作……好的,在对我的几个硬盘做了一些测试之后,它在每个硬盘上都工作,但这就是E。知道为什么会这样吗?有没有办法首先搜索计算机以找到所有可用的驱动器,看看它们是否“正确”?检查
StartCopy()开头的fldr
的类型和值
:WScript.Echo类型名称(fldr):WScript.Echo fldr
。还要检查驱动器E:
上的权限。