Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File VBS脚本获取所有图像并为副本添加值_File_Vbscript_Directory - Fatal编程技术网

File VBS脚本获取所有图像并为副本添加值

File VBS脚本获取所有图像并为副本添加值,file,vbscript,directory,File,Vbscript,Directory,我希望在不指定文件夹的情况下从E:\驱动器中获取所有文件。我想让脚本抓取E:drive中的所有文件。这是我的剧本。我试过多种方法来写它,但都没成功。这是我的脚本,它通过抓取驱动器内的文件夹来工作。第二个是我试图修改以使其正常工作的。任何帮助都将不胜感激 Set fso = CreateObject("Scripting.FileSystemObject") testfolder = ".\allpictures" 'fso.CreateFolder(testfolder) CopyF

我希望在不指定文件夹的情况下从E:\驱动器中获取所有文件。我想让脚本抓取E:drive中的所有文件。这是我的剧本。我试过多种方法来写它,但都没成功。这是我的脚本,它通过抓取驱动器内的文件夹来工作。第二个是我试图修改以使其正常工作的。任何帮助都将不胜感激

    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:
上的权限。