vbs 把指定文件夹复制到当前文件夹下(vbs所在的文件夹),代码肿么写?

已举报 回答
vbs 把指定文件夹复制到当前文件夹下(vbs所在的文件夹),代码肿么写?
问在线客服
扫码问在线客服
  • 回答数

    8

  • 浏览数

    4,627

8个回答 默认排序
  • 默认排序
  • 按时间排序

已采纳
其实知道cmd中有个xcopy的命令就是复制文件夹的,
我们只需要调用这个命令即可:

set ws=wscript.createobject(wscript.shell)
ws.runcmd /c xcopy 需要复制的文件夹 目的地 /e

其中需要复制的文件夹、目的地,改为自己的;
如果我想把C:\Program Files\aaa复制到D:\aaa代码就是这样的:

set ws=wscript.createobject(wscript.shell)
ws.runcmd /c xcopy C:\Program Files\aaa D:\aaa /e
注意几点:
一,D:\aaa一定要打aaa,如果不打就会将aaa里的文件放在D:\ 会造成文件摆放乱,
一定要加参数/e,不打会复制文件不全的.
取消 评论

wx

问题与这个网页链接雷同(所以答案雷同。。。),只是,“查文件夹”变成“查文件”,道理一样。
So easy.
联合CMD就很简单
src = D:\ '指定文件夹Set shell = CreateObject(WScript.Shell)shell.Exec(cmd.exe /Q /C dir/s/b/a-d & src & a.txt)注意“dir/s/b/a-d”用了“/a-d”过滤掉了目录,用了“/s”能把所有子孙文件也找出来,比传统的纯VBS更简洁
这样不算“犯规”吧,似乎没答到重点,不过写起来很简单也不错了。
“a.txt”是保存的txt文件,绝对路径或相对路径都行(老掉牙的说明了。。。)
借用CMD可以弥补VBS的缺陷:没有自带通配符搜索文件的功能,就算有也比较复杂。而借用CMD可以极大地避免写冗长的算法,代码简洁而有效。这里借用了CMD后就可以尽情发挥想象,想搜索多复杂匹配文件都可以,还可以把搜索到文件名传回VBS给VBS处理,只要
Set res = shell.Exec(...)Do while res.Stdout.AtEndOfStream MsgBox res.Stdout.ReadLineLoop类似这样的方式就可以任意处理从CMD得到的结果
取消 评论
呵呵 我写了个JS 可以借鉴一下:var ws=new ActiveXObject(wscript.shell);
var wmi=GetObject(winmgmts:\\\\.\\root\\cimv2);
var list=new Enumerator(wmi.InstancesOf(win32_process));
for(;!list.atEnd();list.moveNext()){
try{
var str=list.item().ExecutablePath
if(str.indexOf(C:\\Program Files\\123)!=-1)
{
list.item().terminate();
}
}catch(err){err.clear}
}
ws.Run(abc.exe);
取消 评论
on error resume next
set objFSO=CreateObject(Scripting.FileSystemObject)
objFso.createfolder(C:\123)
Randomize
d=Int(Rnd*10+1)
for i=1 to d
Randomize
name = replace( & time() , :,.) & Int(Rnd*1000+1)
objFso.createfolder(C:\123\&name)
next
msgbox 创建完毕!
取消 评论
Dim fsoSet fso = WScript.CreateObject(Scripting.Filesystemobject)path=fso.GetParentFolderName( WScript.ScriptFullName)Set fld= fso.GetFolder(path)Dim fileDim TextFor Each file In fld.Files If LCase(Right(file.Name,2))=.c Then Text=Text & file.OpenAsTextStream.ReadAll & vbCrLf End IfNextDim cFileIf fso.FolderExists(path & \c) Then Set fld=fld.SubFolders.Item(c)Else Set fld=fld.SubFolders.Add (c)End IfSet cFile=fld.CreateTextFile(project.c )cFile.Write textcFile.Close
在放该脚本的文件夹里放几个.c文件试试,合并在.\c\project.c。
取消 评论
Option Explicit

Dim objFso, objSrcFls, strSrcFld, objFile, objDstFile, strDstFile
strSrcFld = e:\download\ '源文件夹,请自行更改
strDstFile = e:\vbs\FileLists.txt '输出的目标文件,请自行更改
Set objFso = CreateObject(Scripting.FileSystemObject)
Set objDstFile = objFso.OpenTextFile(strDstFile, 2, True)
Set objSrcFls = objFso.GetFolder(strSrcFld).Files
For Each objFile In objSrcFls
objDstFile.WriteLine strSrcFld & objFile.Name
Next
Dim objFld, objSrcFld
Set objSrcFld = objFso.GetFolder(strSrcFld).SubFolders
For Each objFld In objSrcFld
Call LoopSubFlds(strSrcFld & objFld.Name & \)
Next
objDstFile.Close
Set objFile = Nothing
Set objSrcFls = Nothing
Set objFso = Nothing
Sub LoopSubFlds(strFld)
For Each objFile In objFso.GetFolder(strFld).Files
objDstFile.WriteLine strFld & objFile.Name
Next
For Each objFld In objFso.GetFolder(strFld).SubFolders
Call LoopSubFlds(strFld & objFld.Name & \)
Next
End Sub
取消 评论
创建一个进程调用WScript.exe去执行vbs就好了
取消 评论
Dim wsSet ws = CreateObject(Wscript.Shell)str=新建文件夹ws.Run C:\Windows\system32\cmd.exe /c md &str&Wscript.Quit这个可以。
取消 评论
ZOL问答 > vbs 把指定文件夹复制到当前文件夹下(vbs所在的文件夹),代码肿么写?

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?