Board logo

标题: [文件操作] 批处理获得快捷方式地址赋值不完整,怎么改? [打印本页]

作者: Aolnle    时间: 2015-2-11 15:53     标题: 批处理获得快捷方式地址赋值不完整,怎么改?

桌面上有一快捷方式 “*日志.lnk ”指向地址:
C:\Users\Pan\交易\交易总结\2015年02月\周三-20150211-日志.txt

语句 for /f "delims=" %%i in ('type "*日志*.lnk"^|find /i "txt"^|find "\"') do set "dypath=%%i"

可把该快捷方式指向地址赋值给dypath,但赋值结果总是:
Pan\交易\交易总结\2015年02月\周三-20150211-日志.txt

与前相比少了C:\Users\,导致后续在调用dypath的时候找不到路径,请问大神是什么原因导致?语句如何修改?
作者: pcl_test    时间: 2015-2-11 17:47

本帖最后由 pcl_test 于 2015-2-11 18:00 编辑

回复 1# Aolnle


  type *.lnk可以这样获取快捷方式的信息?
你在命令提示符里把路径切换到桌面,在输入type "*日志*.lnk",回车看看显示什么?
作者: tmplinshi    时间: 2015-2-11 21:25

本帖最后由 tmplinshi 于 2015-2-11 22:01 编辑

试试这样:
  1. for /f "delims=" %%i in (' find ":\" "*日志*.lnk" ^| findstr /i "^[A-Z]:\\\\" ') do set "dypath=%%i"
复制代码

作者: Aolnle    时间: 2015-2-12 14:59

回复 3# tmplinshi

大神,你的代码我试了,得出的结果是C:\Users;我还试着查找“:”,得出的结果也是C:\Users
我想也许是C:\Users与后面的地址不在同一行,我还是按最笨的办法直接加上就行了do set "dypath=C:\Users\%%i"
非常感谢!
作者: tmplinshi    时间: 2015-2-12 18:09

本帖最后由 tmplinshi 于 2015-2-12 18:10 编辑

把那个快捷方式复制为 txt 文件,上传上来看看:
  1. copy 快捷方式文件名.lnk 快捷方式.lnk.txt
复制代码



或者你自己看一下那个 lnk 的内容:
  1. find /v "" *日志*.lnk >lnk.txt & start lnk.txt
复制代码
然后根据内容写出对应的查找代码。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2