有谁知道: 文件夹下有N多张照片; EXCEL里有其中部分照片的名称列表。 如何能按照EXCEL裏的列表把照片copy出来? tool和cmd命令都可以
其实excel和txt都可以,无所谓,裏面是单名字列表。
筛选tool和cmd命令都可以
答案:3 悬赏:80 手机版
解决时间 2021-03-16 05:16
- 提问者网友:浩歌待明月
- 2021-03-15 22:13
最佳答案
- 五星知识达人网友:纵马山川剑自提
- 2021-03-15 22:18
新建一个文本文件,后缀名改为vbs,如文件名为photo.vbs。把如下代码复制到这个vbs里,修改3个路径,保存后,鼠标双击即可完成你所需要的工作。代码已经调试好了,希望能够在你的机子上好好运行。
'-------------------------------------------------
' p.txt格式为一行一张照片的名字,这可以从excel中直接复制过来,如
' aasx.jpg
' trr.bmp
' xxx.jpg
'
' 源照片目录,自己改
OriPath = "d:\\photo"
PhotoListFile = "d:\\photo\\p.txt"
' 复制到的目录,自己改
DestPath = "d:\\photoselected"
Set fso = CreateObject("Scripting.FileSystemObject")
Set shellobj = CreateObject("Wscript.Shell")
If fso.FileExists(PhotoListFile) Then
'WScript.Echo("发现照片列表文件,继续。。。")
Set fs = fso.OpenTextFile(PhotoListFile)
Else
WScript.Echo("没有找到照片列表文件,请正确修改DestPath")
WScript.Quit
End If
If fso.FolderExists(DestPath) Then
'WScript.Echo("已存在要复制到的目录,继续。。。")
Else
fso.CreateFolder(DestPath)
End If
' 筛选复制
Const ForReading = 1
Set fs = fso.OpenTextFile(PhotoListFile, ForReading, False)
Count = 0
Do
PhotoName = fs.ReadLine
If Trim(PhotoName) <> "" Then
cmd = "cmd.exe /c copy """ & OriPath & "\\" & PhotoName & """ " & DestPath
'WScript.Echo cmd
shellobj.Exec(cmd)
Count = Count + 1
End if
Loop While fs.AtEndOfStream <> True
WScript.Echo "共复制了" & Count & "张照片"
fs.Close
Set fs = Nothing
Set fso = Nothing
Set shellobj = Nothing
'-------------------------------------------------
' p.txt格式为一行一张照片的名字,这可以从excel中直接复制过来,如
' aasx.jpg
' trr.bmp
' xxx.jpg
'
' 源照片目录,自己改
OriPath = "d:\\photo"
PhotoListFile = "d:\\photo\\p.txt"
' 复制到的目录,自己改
DestPath = "d:\\photoselected"
Set fso = CreateObject("Scripting.FileSystemObject")
Set shellobj = CreateObject("Wscript.Shell")
If fso.FileExists(PhotoListFile) Then
'WScript.Echo("发现照片列表文件,继续。。。")
Set fs = fso.OpenTextFile(PhotoListFile)
Else
WScript.Echo("没有找到照片列表文件,请正确修改DestPath")
WScript.Quit
End If
If fso.FolderExists(DestPath) Then
'WScript.Echo("已存在要复制到的目录,继续。。。")
Else
fso.CreateFolder(DestPath)
End If
' 筛选复制
Const ForReading = 1
Set fs = fso.OpenTextFile(PhotoListFile, ForReading, False)
Count = 0
Do
PhotoName = fs.ReadLine
If Trim(PhotoName) <> "" Then
cmd = "cmd.exe /c copy """ & OriPath & "\\" & PhotoName & """ " & DestPath
'WScript.Echo cmd
shellobj.Exec(cmd)
Count = Count + 1
End if
Loop While fs.AtEndOfStream <> True
WScript.Echo "共复制了" & Count & "张照片"
fs.Close
Set fs = Nothing
Set fso = Nothing
Set shellobj = Nothing
全部回答
- 1楼网友:詩光轨車
- 2021-03-16 00:24
copy(复制)命令、ren(重命名)命令、del(删除)命令、md(新建)命令、cd(进入)命令、shutdown(关机)命令、dir(显示磁盘内容)命令我最常用的
- 2楼网友:罪歌
- 2021-03-15 22:50
写VBA可以,但觉得用CMD的COPY更方便,使用CMD前可以借助EXCEL的公式生成你要发布的命令。举例说明,假设名称列表中只有文件名,无源目录:
A列 B列
1.jpg ="Copy "&""""&"源目录\"&A1&""" "&""""&"目标目录\" &""""
2.jpg ="Copy "&""""&"源目录\"&A2&""" "&""""&"目标目录\" &""""
将B列公式生成的copy命令,直接粘贴到CMD窗口中,执行即可copy出A列清单中的照片。
如果名称列表中有源目录,则可将 &"源目录\"去掉。
上述方法,个人实验通过。
利用的是CMD COPY命令,使用EXCEL的连接符拼出命令。
加入引号是考虑到相关目录或文件中含用空格。如果没有空格,&""""可以去掉。
写好一行公式后,可以下拉公式,自动填充剩下的公式。
执行cmd时,可将生成的公式整列copy出来,再粘到cmd窗口中。 最后一个命令需要你按下确认键。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯