中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 可以实现按快捷方式复制文件吗
作者:
标题: 可以实现按快捷方式复制文件吗 上一主题 | 下一主题
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『楼 主』:  可以实现按快捷方式复制文件吗

01.txt记录一系列.快捷方式的文件.

用BAT.将它些快捷方式的原文件.复制至指定的文件夹内.重复的自动更名.

如.在01.txt记录:

c:\dd\0.1.lnk  (指引原文件为c:\55\1.jpg)
c:\cc\0.2.lnk  (指引原文件为e:\ww\11.doc)
d:\0.3.lnk    (指引原文件为d:vv\22.bmp)
.......

用BAT将1.jpg   11.doc   22.bmp复制至指定的文件夹中.
而不复制0.1.lnk  0.2.lnk  0.3.lnk

[ Last edited by cad55 on 2008-4-18 at 09:33 PM ]

2008-4-18 19:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 2 楼』:  请把对应规律搞好:

绝对可以,但楼主的快捷方式和原文件的对应太没规律了,这不摆明了要做体力活啊!



批处理之家新域名:www.bathome.net
2008-4-18 20:41
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by zw19750516 at 2008-4-18 08:41 PM:
绝对可以,但楼主的快捷方式和原文件的对应太没规律了,这不摆明了要做体力活啊!

不是要找规律..........

就是引用快捷方式的就可以找到原文件了...
但就是复制不了...复制是快捷方式本身....

还请各位大侠....支支招呀............

2008-4-18 21:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 4 楼』:  原来是这样的:

是我理解错了,如是这样,恐怕难啊。
用type *.lnk只是能把它的路径显示出来,但乱码如何去掉啊?

[ Last edited by zw19750516 on 2008-4-18 at 09:43 PM ]



批处理之家新域名:www.bathome.net
2008-4-18 21:34
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 5 楼』:  我看用批处理是做不到了:

我建了个快捷方式01.lnk,想把它的内容输出:
for /f "delims=" %%i in ('type 01.lnk') do echo %%i
结果只显示一个L
type 01.lnk内容如下:
L              F       `翹H∪ €?? # ∪?                       H簭
E%槰 64 5     }8j         ybYt     锞}8j        ? €   ybYt   N 6 ?  ?[-  eY袕P鰁hV. b a t ,   锞??? €   eY袕P鰁hV. b a t   "   Q            5       P         舟6?   SOFTWARE D:\批处理\奥运倒计时器.bat   . \ eY袕P鰁hV. b a t  D : \ ybYt     ?   

[ Last edited by zw19750516 on 2008-4-18 at 09:59 PM ]



批处理之家新域名:www.bathome.net
2008-4-18 21:57
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
clian76
中级用户





积分 363
发帖 162
注册 2007-4-22
状态 离线
『第 6 楼』:  

有办法的

2008-4-18 22:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 7 楼』:  

试试这个:
@echo off
for /f "delims=" %%i in ('find ":\" *.lnk') do (
  set str=%%i
  call :lp
)
pause
exit

:lp
if "%str:~1,2%" == ":\" echo %str%
goto :eof


   此帖被 +15 点积分         点击查看详情   
评分人:【 26933062 分数: +15  时间:2008-4-18 22:52




2008-4-18 22:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 8 楼』:  

VBS有快捷对象

2008-4-18 22:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 9 楼』:  

厉害,为什么我用findstr不行?(findstr不行我就想都没想用find试了)

[ Last edited by zw19750516 on 2008-4-18 at 11:07 PM ]



批处理之家新域名:www.bathome.net
2008-4-18 23:06
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 10 楼』:  现在能解决问题了:

假设要复制到d:\temp
@echo off
for /f "delims=" %%i in (01.txt) do call :lp %%i
pause>nul&goto :eof
:lp
for /f "delims=" %%i in ('type %1 ^| find ":\"') do copy /y "%%i" d:\temp
[ Last edited by zw19750516 on 2008-4-18 at 11:38 PM ]



批处理之家新域名:www.bathome.net
2008-4-18 23:17
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 11 楼』:  

感谢各位
感谢"zh159""zw19750516"
问题解决了..............

2008-4-19 09:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 12 楼』:  

按LZ的要求(自己测试):
@echo off
for /f "delims=" %%i in (01.txt) do (
  for /f "delims=" %%j in ('find ":\" "%%i"') do (
    set str=%%j
    call :lp "%%i"
  )
)
pause
exit

:lp
if "%str:~1,2%" == ":\" (
  echo %~1 - echo %str%
)
goto :eof




2008-4-19 11:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 13 楼』:  



  Quote:
Originally posted by zh159 at 2008-4-19 11:37 AM:
按LZ的要求(自己测试):
[code]@echo off
for /f "delims=" %%i in (01.txt) do (
  for /f "delims=" %%j in ('find ":\" "%%i"') do (
    set str= ...

谢谢...但此命令..不支持中文名
还请改一下...

2008-4-19 12:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 14 楼』:  

还没有发现FIND还具有这个功能,但是非常失望的如果跟了参数,那么就不行了,如下的快捷方式
D:\CATIA\B17\intel_a\code\bin\CATSTART.exe -run CNEXT.exe -env CATIA_P3.V5R17.B17 -direnv D:\CATIA\CATEnv -nowindow

2008-7-30 09:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: