如何截取带"的字符串
如何截取带"的字符串?for /f "tokens=2 delims=:" %%i in ('reg query HKCR\http\shell\open\command') do set iee=%systemDrive%%%i
echo;默认浏览:%iee%运行结果是 c:\Program Files\世窗\Application\TheWorld.exe" -- "%1"
如何截取为 c:\Program Files\世窗\Application\TheWorld.exe
Test OS: Windows 7 X64
谢谢,试验成劝!
如果--前后有空格的话,貌似%iee:~0,-7%就满足要求了吧?? 本帖最后由 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%
holley2008 发表于 2020-8-24 09:41
如果--前后有空格的话,貌似%iee:~0,-7%就满足要求了吧??
这方法不好,
当用户装不同的浏览器,
后面的参数会变动,
会得到错误的结果.
例:
"c:\Program Files\世窗\Application\TheWorld.exe" -- "%1"
"C:\Program Files\Internet Explorer\iexplore.exe" %1 plusv 发表于 2020-8-24 12:18
这方法不好,
当用户装不同的浏览器,
后面的参数会变动,
是的,变动默认浏览器后就不行了,还是采用你的方法适用性強。
好像再讨论什么高深的东西 for /f "tokens=3 delims= """"""" %%i in ('reg query HKCR\http\shell\open\command') do set iee=%%i
echo %iee:~1,-1% 江南一根葱 发表于 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
@echo off
for /f tokens^=2^ delims^=^" %%i in ('reg query HKCR\http\shell\open\command /ve') do set iee=%%i
echo %iee%
pause moran 发表于 2020-8-24 20:25
谢谢,很简洁。
好像不要 /ve 也能成功。for /f tokens^=2^ delims^=^" %%i in ('reg query HKCR\http\shell\open\command') do echo 默认浏览:%%i
807979023 发表于 2020-8-24 21:06
谢谢,很简洁。
好像不要 /ve 也能成功。
对的,用双引号做了分隔符,就这个路径有双引号。 我想 echo /? 或 /h 帮助
结果显示成:
显示消息,或者启用或关闭命令回显。
ECHO
ECHO
若要显示当前回显设置,请键入不带参数的 ECHO。
不得已只好改成:
我想 echo /h 或 /? 帮助
难道不能显示成:
我想 echo /? 或 /h 帮助
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /f "delims=" %%c in (' reg query HKCR\http\shell\open\command') do (
set x=%%c
set x=!x:"=/!
for /f "tokens=2 delims=/" %%d in ('echo !x!') do (
if not"%%d"=="" echo %%d
)
) 谢谢,7和10成功。
页:
[1]