vbs代码复制文件(vbs输入文件名前几个字符搜索文件并复制到特定的文件夹,如何实现)

本文目录
- vbs输入文件名前几个字符搜索文件并复制到特定的文件夹,如何实现
- vbs 复制文件 到桌面
- VBS 如何拷贝一个文件
- 如何 通过VBS 搜索 电脑上的所有文件夹 然后复制一个文件到这所有的文件夹下
- VBS 怎么复制文件
vbs输入文件名前几个字符搜索文件并复制到特定的文件夹,如何实现
正好写过bat的,不过vbs的还没有写,现在写一下,楼主可以看一下,就一行命令, 结合了vbs和bat两者的, 代码见最后for /f "eol= tokens=1,* delims=" %i in (’where /r 被搜索的文件夹 文件名前几个字符*.*’) copy %i 特定的文件夹\/r 的意思是在文件夹递归地查找 (可能有点慢)去掉/r就只找文件夹下一层的for /f "eol= tokens=1,* delims=" %i in (’where 被搜索的文件夹 文件名前几个字符*.*’) copy %i 特定的文件夹\被搜索的文件夹例如 c:\users\desktop\信工信息文件名前几个字符*.* 例如 19信工*.*特定的文件夹\例如 d:\信工信息\如果不想把 c:\users\desktop\john\信工信息\其他 等子文件夹的内容拷出来for /f "eol= tokens=1,* delims=" %i in (’where c:\users\john\desktop\信工信息 19信工*.*’) do copy %i d:\信工信息\反之就用for /f "eol= tokens=1,* delims=" %i in (’where /r c:\users\john\desktop\信工信息 19信工*.*’) do copy %i d:\信工信息\写到vbs里是这样, 如果不想把 c:\users\desktop\john\信工信息\其他 等子文件夹的内容拷出来Set ws = CreateObject("Wscript.Shell")a="c:\users\john\desktop\信工信息" ’来源文件夹 b="d:\信工信息"message = "输入文件名前几个字符" & chr(10) &"来源文件夹 "&a &chr(10) &b defaultValue=""title = "输入文件名前几个字符搜索文件并复制到特定的文件夹"&""myValue = InputBox(message, title, defaultValue)achoice=MsgBox ("是否递归查找(查找子文件夹)" ,vbyesno)d=""if achoice=vbyes thend="/r"end ifws.run "cmd /c for /f ""eol= tokens=1,* delims="" %i in (’where "&a&" 19信工*.*’) do copy %i "&b&"\ ",0,true记得保存文件时选择ansi编码或者gbk而不是utf-8,双击可用
vbs 复制文件 到桌面
Set vbs=CreateObject("WScript.shell")
desktop=vbs.SpecialFolders(4)&"\"
vbs.run("xcopy 1.txt " & chr(34) & desktop & chr(34) & " /k /y"),vbHide
说明一下:
1.经过我测试,vbs.run()中可以直接写xcopy命令,如果写cmd /c xcopy反而只能启动cmd命令,而不能执行xcopy命令。所以run后面直接写xcopy命令的语法即可。
2.因为桌面的路径一般是“C:\Documents and Settings\administrator\桌面”,注意,其中含有空格。在DOS命令中如果路径含有空格,应该用双引号将其括起来,否则会识别错误。在VBS语句中不能直接用双引号"表示字串中的双引号,只能用chr(34)来表示双引号。
3.xcopy命令要加一个/w参数,才能复制源文件的属性。
4.如果想要让窗口隐藏起来,命令启动后就不能再接受我们的进一步指令,所以必须确保那条命令在任何情况下都能顺利执行完毕。因此要在参数后面加 /y 用来覆盖已存在的文件而不提示。如果不加/y刚好目的文件已经存在,则xcopy命令会一直在后台执行,等待我们确认是否覆盖已经存在的文件,这时你打开任务管理器可以看到一个xcopy.exe进程就是它。除非你手动结束它或者关机,否则此进程将一直存在,这可不是我们希望的效果。
VBS 如何拷贝一个文件
Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
set c=fso.getfile("C:\WINDOWS\regedit.exe") ’被拷贝的文件的位置
c.copy("拷贝来的注册表器.exe") ’拷贝到哪(可以是绝对路径,这里是拷贝到运行的*.vbs文件所在文件夹!
上面的保存成*.vbs 文件就会拷贝 注册表器 到 当前目录,你可以试下 ,有问题M我! 呵呵!
补充:
’如果你经常修改路径可以这样
dim yuan,dao
yuan=inputbox("指定你要拷贝的文件","输入源文件路径","C:\WINDOWS\regedit.exe")
dao=inputbox("指定你要拷贝到的位置和拷贝后的名字","输入到路径","C:\Documents and Settings\All Users\桌面\重命名后.exe")
Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
set c=fso.getfile(yuan)
c.copy(dao)
默认的是拷贝注册表文件到桌面,你可以在要求你输入路径的时候改成拷贝其他文件到其他位置 重名就覆盖? OK?
如何 通过VBS 搜索 电脑上的所有文件夹 然后复制一个文件到这所有的文件夹下
’*************************代码开始*********************************
for each a in fso.drives ’获取每个盘符
set a=fso.getdrive(a)
if a.drivetype=2 then ’如果该盘是固定磁盘
b=a.rootfolder ’返回可移动磁盘的根路径
call fzwj(b)
end if
next
sub pdwjj(mb) ’判断文件夹
call fz(mb)
for each d in mb.subfolders ’根目录下的文件夹
call pdwjj(d)
next
end sub
sub fz(lj) ’复制文件
wj="e:\1.vbs" ’要复制的文件
if right(lj,1)《》"\" then lj=lj & "\"
fso.copyfile wj,lj & nm,true ’复制文件到指定文件夹,参数true表示如果文件存在的话就覆盖
end sub
’*************************代码结束*********************************
以上代码关键要利用sub过程的循环调用来达到文件夹得历遍,然后复制文件到文件夹就很简单了。。。
VBS 怎么复制文件
假设a、b目录都在c盘。
On Error Resume Next
Dim fso,yn,ttfile
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFolder "c:\a\*","c:\b\",False
fso.CopyFile "c:\a\*","c:\b\",False

更多文章:
elementui 响应式(element-ui 表格元素映射渲染、即 传数字,渲染名称)
2026年9月23日 09:00
python中value函数(python如何无限遍历字典中的value,在不知道字典里面有几层字典的时候)
2026年9月23日 07:10
lenovo是什么梗(为什么有人说联想是美国的求解,这是个什么梗)
2026年9月23日 06:30
FPS是什么 FPS游戏的定义和特点?好玩的FPS单机游戏有哪些
2026年9月23日 04:40






