Board logo

标题: 可以实现按快捷方式复制文件吗 [打印本页]

作者: cad55     时间: 2008-4-18 19:41    标题: 可以实现按快捷方式复制文件吗

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 ]

作者: bat-zw     时间: 2008-4-18 20:41    标题: 请把对应规律搞好:

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

作者: cad55     时间: 2008-4-18 21:31
Originally posted by zw19750516 at 2008-4-18 08:41 PM: 绝对可以,但楼主的快捷方式和原文件的对应太没规律了,这不摆明了要做体力活啊!
不是要找规律.......... 就是引用快捷方式的就可以找到原文件了... 但就是复制不了...复制是快捷方式本身.... 还请各位大侠....支支招呀............

作者: bat-zw     时间: 2008-4-18 21:34    标题: 原来是这样的:

是我理解错了,如是这样,恐怕难啊。 用type *.lnk只是能把它的路径显示出来,但乱码如何去掉啊? [ Last edited by zw19750516 on 2008-4-18 at 09:43 PM ]

作者: bat-zw     时间: 2008-4-18 21:57    标题: 我看用批处理是做不到了:

我建了个快捷方式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 ]

作者: clian76     时间: 2008-4-18 22:19
有办法的

作者: zh159     时间: 2008-4-18 22:42
试试这个:
@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

作者: slore     时间: 2008-4-18 22:55
VBS有快捷对象

作者: bat-zw     时间: 2008-4-18 23:06
厉害,为什么我用findstr不行?(findstr不行我就想都没想用find试了) [ Last edited by zw19750516 on 2008-4-18 at 11:07 PM ]

作者: bat-zw     时间: 2008-4-18 23:17    标题: 现在能解决问题了:

假设要复制到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 ]

作者: cad55     时间: 2008-4-19 09:23
感谢各位 感谢"zh159""zw19750516" 问题解决了..............

作者: zh159     时间: 2008-4-19 11:37
按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

作者: cad55     时间: 2008-4-19 12:24
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= ...
谢谢...但此命令..不支持中文名 还请改一下...

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