[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理获得快捷方式地址赋值不完整,怎么改?

桌面上有一快捷方式 “*日志.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 18:00 编辑

回复 1# Aolnle


  type *.lnk可以这样获取快捷方式的信息?
你在命令提示符里把路径切换到桌面,在输入type "*日志*.lnk",回车看看显示什么?

TOP

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

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

评分人数

    • CrLf: 不潜水都是好同志技术 + 1

TOP

回复 3# tmplinshi

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

TOP

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

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



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

TOP

返回列表