无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5879|回复: 15
打印 上一主题 下一主题

[求助] 如何截取带"的字符串

[复制链接]
跳转到指定楼层
1#
发表于 2020-8-23 20:22:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
如何截取带"的字符串?
  1. for /f "tokens=2 delims=:" %%i in ('reg query HKCR\http\shell\open\command') do set iee=%systemDrive%%%i
  2. echo;默认浏览:  %iee%
复制代码
运行结果是 c:\Program Files\世窗\Application\TheWorld.exe" -- "%1"
如何截取为 c:\Program Files\世窗\Application\TheWorld.exe


2#
发表于 2020-8-23 22:36:11 | 只看该作者
Test OS: Windows 7 X64




a.rar

219 Bytes, 下载次数: 18, 下载积分: 无忧币 -2

评分

参与人数 1无忧币 +5 收起 理由
807979023 + 5 赞一个!

查看全部评分

回复

使用道具 举报

3#
 楼主| 发表于 2020-8-24 07:38:13 | 只看该作者
谢谢,试验成劝!
回复

使用道具 举报

4#
发表于 2020-8-24 09:41:52 | 只看该作者
如果--前后有空格的话,貌似%iee:~0,-7%就满足要求了吧??

点评

这方法不好, 当用户装不同的浏览器, 后面的参数会变动, 会得到错误的结果. 例: "c:\Program Files\世窗\Application\TheWorld.exe" -- "%1" "C:\Program Files\Internet Explorer\iexplore.exe" %1  详情 回复 发表于 2020-8-24 12:18
谢谢, %iee:~0,-9% 也可以.原先那个判断错了,if "%iee:~-3,-1%"=="%1" set iee=%iee:~0,-9% 要改为 if "%iee:~-2,-1%"=="1" set iee=%iee:~0,-9%  详情 回复 发表于 2020-8-24 11:54
回复

使用道具 举报

5#
 楼主| 发表于 2020-8-24 11:54:30 | 只看该作者
本帖最后由 807979023 于 2020-8-24 11:56 编辑
holley2008 发表于 2020-8-24 09:41
如果--前后有空格的话,貌似%iee:~0,-7%就满足要求了吧??

谢谢,  %iee:~0,-9% 也可以
原先的判断错了   if "%iee:~-3,-1%"=="%1" set iee=%iee:~0,-9%
要改为               if "%iee:~-2,-1%"=="1" set iee=%iee:~0,-9%



回复

使用道具 举报

6#
发表于 2020-8-24 12:18:49 | 只看该作者
holley2008 发表于 2020-8-24 09:41
如果--前后有空格的话,貌似%iee:~0,-7%就满足要求了吧??

这方法不好,
当用户装不同的浏览器,
后面的参数会变动,
会得到错误的结果.

例:
"c:\Program Files\世窗\Application\TheWorld.exe" -- "%1"
"C:\Program Files\Internet Explorer\iexplore.exe" %1

点评

是的,变动默认浏览器后就不行了,还是采用你的方法适用性強。  详情 回复 发表于 2020-8-24 12:59
回复

使用道具 举报

7#
 楼主| 发表于 2020-8-24 12:59:44 | 只看该作者
plusv 发表于 2020-8-24 12:18
这方法不好,
当用户装不同的浏览器,
后面的参数会变动,

是的,变动默认浏览器后就不行了,还是采用你的方法适用性強。
回复

使用道具 举报

8#
发表于 2020-8-24 13:40:45 | 只看该作者
好像再讨论什么高深的东西
回复

使用道具 举报

9#
发表于 2020-8-24 14:36:47 | 只看该作者
for /f "tokens=3 delims= """"""" %%i in ('reg query HKCR\http\shell\open\command') do set iee=%%i
echo %iee:~1,-1%

点评

不对. Test OS: Windows 7 X64 [attachimg]463978[/attachimg]  详情 回复 发表于 2020-8-24 15:16
回复

使用道具 举报

10#
发表于 2020-8-24 15:16:36 | 只看该作者
江南一根葱 发表于 2020-8-24 14:36
for /f "tokens=3 delims= """"""" %%i in ('reg query HKCR\http\shell\open\command') do set iee=%%i
e ...

不对.

Test OS: Windows 7 X64


回复

使用道具 举报

11#
发表于 2020-8-24 20:25:06 | 只看该作者
  1. @echo off
  2.     for /f tokens^=2^ delims^=^" %%i in ('reg query HKCR\http\shell\open\command /ve') do set iee=%%i
  3.     echo %iee%
  4.     pause
复制代码

点评

谢谢,很简洁。 好像不要 /ve 也能成功。  详情 回复 发表于 2020-8-24 21:06

评分

参与人数 1无忧币 +5 收起 理由
807979023 + 5 赞一个!

查看全部评分

回复

使用道具 举报

12#
 楼主| 发表于 2020-8-24 21:06:16 | 只看该作者

谢谢,很简洁。
好像不要 /ve 也能成功。
  1. for /f tokens^=2^ delims^=^" %%i in ('reg query HKCR\http\shell\open\command') do echo 默认浏览:  %%i
复制代码

点评

对的,用双引号做了分隔符,就这个路径有双引号。  详情 回复 发表于 2020-8-24 21:40
回复

使用道具 举报

13#
发表于 2020-8-24 21:40:00 | 只看该作者
807979023 发表于 2020-8-24 21:06
谢谢,很简洁。
好像不要 /ve 也能成功。

对的,用双引号做了分隔符,就这个路径有双引号。
回复

使用道具 举报

14#
发表于 2020-8-25 01:59:32 | 只看该作者
我想 echo /? 或 /h 帮助
结果显示成:
显示消息,或者启用或关闭命令回显。

  ECHO [ON | OFF]
  ECHO [message]

若要显示当前回显设置,请键入不带参数的 ECHO。

不得已只好改成:
我想 echo /h 或 /? 帮助

难道不能显示成:
我想 echo /? 或 /h 帮助
回复

使用道具 举报

15#
发表于 2020-8-25 17:01:09 | 只看该作者
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. for /f "delims=" %%c in (' reg query HKCR\http\shell\open\command') do (
  4.         set x=%%c
  5.         set x=!x:"=/!
  6.         for /f "tokens=2 delims=/" %%d in ('echo !x!') do (
  7.                 if not  "%%d"=="" echo %%d
  8.         )
  9. )
复制代码
回复

使用道具 举报

16#
 楼主| 发表于 2020-8-25 21:20:10 来自手机 | 只看该作者
谢谢,7和10成功。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-12-5 09:53

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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