找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 31953|回复: 10

[注册表类] [已解决]BAT批处理如何获取文件全名?

[复制链接]
发表于 2014-4-20 21:43:06 | 显示全部楼层 |阅读模式
本帖最后由 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能解决,还好几条命令能解决,可是注册表里只能写一行呀,困惑呀。期待大神...
发表于 2014-4-21 03:47:59 | 显示全部楼层
去掉引号即可
  1. for %%i in (%1) do echo %%~nxi&start http://www.baidu.com/s?wd=%%~nxi"
复制代码
 楼主| 发表于 2014-4-21 07:06:08 | 显示全部楼层
谢谢楼上热心的朋友,可是还有点问题。测试右击桌面上的“新建  文本文档.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”字样的结果,还望各位大侠指正。
发表于 2014-4-21 11:02:45 | 显示全部楼层
网址中不能有空格,空格会用%20表示,你可以把p写好,在注册表调用。
发表于 2014-4-21 11:05:24 | 显示全部楼层
本帖最后由 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\""
发表于 2014-4-21 11:41:11 | 显示全部楼层

  1. cmd /c for %%i in ("%1") do echo %%~nxi&start "" "http://www.baidu.com/s?wd=%%~nxi"
复制代码
这样试试
 楼主| 发表于 2014-4-21 12:14:09 | 显示全部楼层
本帖最后由 vszy 于 2014-4-21 12:16 编辑
这样试试
xxpinqz 发表于 2014-4-21 11:41


这个得到的结果还是搜索“文本文档.txt”
发表于 2014-4-21 15:22:36 | 显示全部楼层
  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")"

复制代码
 楼主| 发表于 2014-4-21 15:55:15 | 显示全部楼层
谢谢8楼的朋友,问题基本解决了。只是不包含扩展名(.txt)的搜索,但不影响实用的。
发表于 2014-4-21 16:20:28 | 显示全部楼层
回复 9# vszy

  1. for %%i in ("%1") do (start "" "http://www.baidu.com/s?wd=%%~nxi")"
复制代码
发表于 2014-4-21 16:45:00 | 显示全部楼层
回复 9# vszy


    改为 %%~nxi 就带扩展名了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 02:03 , Processed in 0.032682 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表