Board logo

标题: [文本处理] [已解决]批处理如何对输入的网址作为变量,将关键字本身之后的部分全部删除? [打印本页]

作者: thp2008    时间: 2023-5-9 12:56     标题: [已解决]批处理如何对输入的网址作为变量,将关键字本身之后的部分全部删除?

我想写个批处理,对我粘贴的网址,作为变量。然后批处理,自动,将我输入的网址将关键字本身及关键字之后的部分全部删除。需要注意的是,网址有有些符号,不要作为变量处理时歧义了。
  1. echo off
  2. echo.
  3. echo.
  4. set /p url=请输入URL链接:
  5. .....
  6. 在这里,如何将我输入的网址,关键字 “&idx=” 之后的部分全部删除掉,包含关键字本身也删除掉。
  7. echo %newurl%
复制代码
网址示例:

原URL
https://finder.video.XX.com/251/ ... ag=xV1&taskid=0

要删除掉的部分
&idx=1&a=1&adaptivelytrans=0&bizid=1023&dotrans=3071&hy=SH&m=feea41eaee5c5c2ea3acb81386847f2e&finderextscene=6&web=1&fexam=1&X-snsvideoflag=xV1&taskid=0

得到新的URL

https://finder.video.XX.com/251/ ... a6EgtFtibVbze4hPNoc

感谢!
作者: hfxiang    时间: 2023-5-9 13:34

回复 1# thp2008

用“set /p url=请输入URL链接:”输入网址,暂时没想到解决方法。
但如果把网址保存为1.txt,可用以下指令之一,在命令行中可以实现:
  1. sed "/&idx=.*$/s///" 1.txt>2.txt
复制代码
  1. gawk "{sub(/&idx=.*$/,\"\")}1" 1.txt>2.txt
复制代码

作者: buyiyang    时间: 2023-5-9 13:39

  1. @echo off
  2. set /p url=请输入URL链接:
  3. set "key=&idx="
  4. powershell -c "'%url%' -replace '%key%.*'"
  5. pause
复制代码

作者: buyiyang    时间: 2023-5-9 13:56

回复 2# hfxiang
  1. set /p url=请输入URL链接:
  2. echo,"%url%" | sed "s/\&idx=.*$//;s/\"//g"
复制代码

作者: thp2008    时间: 2023-5-9 14:09

buyiyang 发表于 2023-5-9 13:39



感谢您的帮助,我测试了,可以用。
但其实,我想将输出的结果作为变量在Chrome.exe中打开。请问如何将Powershell输出的结果作为变量,请帮我修改一下,下面的代码,再次表示感谢!
  1. @echo off
  2. echo.
  3. echo.
  4. set /p url=请输入URL链接:
  5. set "key=&idx="
  6. echo.
  7. echo.
  8. powershell -c "'%url%' -replace '%key%.*'"
  9. start "%ProgramFiles%\Google\Chrome\Application\Chrome.exe"  %NewURL%
  10. pause
复制代码

作者: thp2008    时间: 2023-5-9 14:09

回复  thp2008

用“set /p url=请输入URL链接:”输入网址,暂时没想到解决方法。
但如果把网址保存为 ...
hfxiang 发表于 2023-5-9 13:34



    谢谢,我测试了可以用,没问题。只是需要第三方工具配合。
作者: thp2008    时间: 2023-5-9 14:10

回复 4# buyiyang


    感谢!原来可以这样处理。
作者: buyiyang    时间: 2023-5-9 14:23

回复 5# thp2008
  1. for /f "delims=" %%i in ('powershell -c "'%url%' -replace '%key%.*'"') do set "newurl=%%i"
  2. start "" "%ProgramFiles%\Google\Chrome\Application\Chrome.exe" "%NewURL%"
复制代码

作者: 77七    时间: 2023-5-9 14:25

  1. @echo off
  2. echo.
  3. echo.
  4. set /p url=请输入URL链接:
  5. for /f "tokens=1" %%a in ("%url:&idx= %") do (
  6. start "%ProgramFiles%\Google\Chrome\Application\Chrome.exe" %%a
  7. )
  8. pause
复制代码

作者: thp2008    时间: 2023-5-9 14:30

回复 9# 77七


GOOD!

感谢大家的帮助,顺利解决,又学会了点。




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