Board logo

标题: [注册表类] [已解决]BAT批处理如何获取文件全名? [打印本页]

作者: vszy    时间: 2014-4-20 21:43     标题: [已解决]BAT批处理如何获取文件全名?

本帖最后由 vszy 于 2014-4-21 15:55 编辑

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\baidu]
@="百度搜索"
[HKEY_CLASSES_ROOT\*\shell\baidu\command]
@="cmd /c for %%i in (\"%1\") do echo %%~nxi&start http://www.baidu.com/s?wd=%%~nxi"

上面注册表导入后可实现右击任意文件出现直接用百度搜索文件名的选项,可是有点问题,如果文件名中有空格(如AB C.TXT)上面的命令只会获取AB并打开IE搜索,我的问题就是如何能实现在件名中有空格的情况下也能完整的获取文件名并搜索。

刚刚查了一些帖子,貌似用usebackq能解决,还好几条命令能解决,可是注册表里只能写一行呀,困惑呀。期待大神...
作者: CrLf    时间: 2014-4-21 03:47

去掉引号即可
  1. for %%i in (%1) do echo %%~nxi&start http://www.baidu.com/s?wd=%%~nxi"
复制代码

作者: vszy    时间: 2014-4-21 07:06

谢谢楼上热心的朋友,可是还有点问题。测试右击桌面上的“新建  文本文档.txt”搜索(桌面路径D:\My Documents\Desktop)。结果如下:
@="cmd /c for %%i in (%1) do echo %%~nxi&start http://www.baidu.com/s?wd=%%~nxi"
这种写法导入后,右击“新建  文本文档.txt”搜索得到的是百度搜索了“My”。于是尝试去引号
@=cmd /c for %%i in (%1) do echo %%~nxi&start http://www.baidu.com/s?wd=%%~nxi"
@=cmd /c for %%i in (%1) do echo %%~nxi&start http://www.baidu.com/s?wd=%%~nxi
得到结果是百度搜索了“文本文档.txt”,“新建”两个字又要没了。

真是迷糊呀,又尝试了一些改法都得不到搜索“新建  文本文档.txt”字样的结果,还望各位大侠指正。
作者: digger    时间: 2014-4-21 11:02

网址中不能有空格,空格会用%20表示,你可以把p写好,在注册表调用。
作者: zhanglei1371    时间: 2014-4-21 11:05

本帖最后由 zhanglei1371 于 2014-4-21 11:18 编辑

回复 3# vszy


Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\baidu]
@="百度搜索"

[HKEY_CLASSES_ROOT\*\shell\baidu\command]
@="cmd /c for %%i in (\"%1\") do echo %%~nxi&explorer \"http://www.baidu.com/s?wd=%%~nxi\""
作者: xxpinqz    时间: 2014-4-21 11:41

  1. cmd /c for %%i in ("%1") do echo %%~nxi&start "" "http://www.baidu.com/s?wd=%%~nxi"
复制代码
这样试试
作者: vszy    时间: 2014-4-21 12:14

本帖最后由 vszy 于 2014-4-21 12:16 编辑
这样试试
xxpinqz 发表于 2014-4-21 11:41


这个得到的结果还是搜索“文本文档.txt”
作者: 522235677    时间: 2014-4-21 15:22

  1. Windows Registry Editor Version 5.00
  2. [HKEY_CLASSES_ROOT\*\shell\baidu\command]
  3. @="cmd /c for %%i in (\"%1\") do (echo %%~nxi&start \"\" \"http://www.baidu.com/s?wd=%%~ni\")"
复制代码

作者: vszy    时间: 2014-4-21 15:55

谢谢8楼的朋友,问题基本解决了。只是不包含扩展名(.txt)的搜索,但不影响实用的。
作者: terse    时间: 2014-4-21 16:20

回复 9# vszy
  1. for %%i in (\"%1\") do (start \"\" \"http://www.baidu.com/s?wd=%%~nxi\")"
复制代码

作者: 522235677    时间: 2014-4-21 16:45

回复 9# vszy


    改为 %%~nxi 就带扩展名了




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