标题: [已解决]VBS怎样复制文件路径到剪贴板中? [打印本页]
作者: chensiyan 时间: 2010-11-6 12:04 标题: [已解决]VBS怎样复制文件路径到剪贴板中?
http://hi.baidu.com/null_vbt/blo ... 3896f41e17a2e3.html
VBS获取文件完整路径并存储(拖放操作)
2009-04-06 11:08'=======================================================================
'VBScript Source File -- 获取文件完整路径并存储(拖放操作)
'NAME:获取文件完整路径并存储(拖放操作)
'AUTHOR:Null
'DATE:2008-08-09
'COMMENT:获取文件完整路径并存储(拖放操作)
'=======================================================================
function getfolder()
getfolder=left(wscript.scriptfullname,instrrev(wscript.scriptfullname,"\")-1)
end function
path=left(wscript.scriptfullname,len(wscript.scriptfullname)-len(Wscript.ScriptName))
ptxt=path&"\Path.txt"
Set fso = wscript.CreateObject("Scripting.FileSystemObject")
set f=fso.opentextfile(ptxt,8,true)
path=Left(Wscript.ScriptFullName,len(Wscript.ScriptFullName))
if wscript.arguments.count=0 then
msgbox "请将需要操作文件拖放到本脚本上即可!",48,"提示"
wscript.quit
end if
for each fname in wscript.arguments
f.writeline(fname)
next
f.close
文件路径没有直接跑到剪贴板中,而是跑到了VBS所在路径中Path.txt中,帮忙修改下。
还有下面这个。
http://hi.baidu.com/oiioooiiii/b ... 8f29719f41db07ec5fa
vbs:很实用的工具——快速复制文件(夹)完整路径
2009年02月01日 星期日 下午 08:42
这vbs技术含量不高,不过很实用。
经常复制文件(夹)路径,
文件夹路径还好,直接复制就行;
文件路径就要先复制它所在文件夹的路径了,再属性,把文件名字复制,接起来才行,很烦。
那天灵感来了,就弄了个vbs,使发送到菜单里多个选项:复制路径。
具体操作:
建立一个vbs文件,名为:复制路径.vbs,内容为:
fileName=wscript.arguments(0)
set fso=createobject("scripting.filesystemobject")
fso.createtextfile("0").write(fileName)
set ws=createobject("wscript.shell")
ws.run "cmd /c type 0 |clip",0,-1
fso.deletefile("0")
保存,把这个vbs文件弄到sendto文件夹,
找不到sendto文件夹?运行下面的vbs,就会显示sendto文件夹的路径,
msgbox createobject("wscript.shell").specialfolders("sendto")
把第一个vbs丢进去,好了,你的右键发送到多了个:复制路径.vbs
当文件或文件夹被发送到它之后,文件(夹)的完整路径就已经进入剪切板了!
还有,如果不喜欢那个图标或菜单选项有个vbs的扩展名,
可以把第一个vbs存好,再把它的快捷方式丢到sendto,这样,图标或文件名就随你改了(改那个快捷方式的哈!!!!)
执行完事后,结果也不对。
也帮忙看一下。
[ 本帖最后由 chensiyan 于 2010-11-6 13:21 编辑 ]
作者: chensiyan 时间: 2010-11-6 12:22
对了,我再啰嗦一下啊,我要的效果是:一拖当前图标到VBS程序上,就在剪贴板中得到了 完整的文件路径。
例如:C:\Documents and Settings\Administrator\桌面\clipTest.txt
作者: broly 时间: 2010-11-6 12:41 标题: 回复 2楼 的帖子
你的是XP系统吗?WIN7下此代码不可用- if wscript.arguments.count=0 then
- wscript.echo "请将文件拖放到本脚本上!"
- wscript.quit
- end if
- dim fso,f
- set fso = wscript.createobject("scripting.filesystemobject")
- Set f = fso.GetFile(WScript.Arguments(0))
- Clipboard.Clear
- Clipboard.SetText f
- set f = nothing
- set fso = nothing
复制代码
作者: chensiyan 时间: 2010-11-6 12:52
原帖由 broly 于 2010-11-6 12:41 发表
你的是XP系统吗?WIN7下此代码不可用if wscript.arguments.count=0 then
wscript.echo "请将文件拖放到本脚本上!"
wscript.quit
end if
dim fso,f
set fso = wscript.createobject("scripting.filesystemobject ...
系统属性
常规 计算机名 硬件 高级
系统:
Microsoft Windows XP
Professional
版本 2002
Service Pack 3
感谢回复,运行缺少对象,还是报错,还得再修改下。
[ 本帖最后由 chensiyan 于 2010-11-6 12:57 编辑 ]
作者: chensiyan 时间: 2010-11-6 12:56
对了,我有个运行正常的。要不你参考下:
Dim Wsh
Set objArgs = WScript.Arguments
Set Wsh = WScript.CreateObject("WScript.Shell")
WScript.Sleep(00000)
Wsh.Run "C:\nircmdc.exe clipboard set " & """"& objArgs(0) &"""",0,True
Set Wsh=NoThing
WScript.quit
不过,要依赖于nircmd,这是我不希望用到的;因为几行代码就能搞定的事,何苦又多用一个呢。能少则少,实用为本。
作者: broly 时间: 2010-11-6 13:10 标题: 回复 5楼 的帖子
原先那个错了
-
- if wscript.arguments.count=0 then
- wscript.echo "请将文件拖放到本脚本上!"
- wscript.quit
- end if
- dim fso,f
- set fso = wscript.createobject("scripting.filesystemobject")
- Set f = fso.GetFile(WScript.Arguments(0))
- Set wsShell = CreateObject("WScript.Shell")
- wsShell.Run "mshta vbscript:ClipboardData.SetData("&chr(34)&"text"&chr(34)&"," &Chr(34)& f&Chr(34)& ")(close)",0,True
- set f = nothing
- set fso = nothing
- set wsshell = nothing
复制代码
作者: chensiyan 时间: 2010-11-6 13:18
原帖由 broly 于 2010-11-6 13:10 发表
原先那个错了
if wscript.arguments.count=0 then
wscript.echo "请将文件拖放到本脚本上!"
wscript.quit
end if
dim fso,f
set fso = wscript.createobject("scripting.filesystemobject")
Set f = fso.G ...
434字节的.vbs,就搞定了!
万分感谢啊,这次 我那WIN+C,一键得到当前选中图标的完整路径就Oh yeah了。
最少的代码,办同样的实事。感谢解决。版主你一定要重赏啊!!!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |