[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】批处理如何把有特殊字符的文本截取,并且给两个变量?

本帖最后由 helpless 于 2022-5-11 15:49 编辑

test.txt文件是两行的:

testonly
test deviceinfo Mode Success:123.html?user=gqzOTT5W&pass=KuNe8rAy


请问要怎么把gqzOTT5WKuNe8rAy截取出来并给于变量?

user=后面8位是随机的
pass=后面8位也是随机的
每个设备不一样,但是位置和位数是固定的


谢谢

回复 1# helpless
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1,*  delims=^=" %%a in (test.txt) do (
  3. set date1=%%b
  4. if defined date1 (
  5. for /f "tokens=1,*  delims=^&" %%c in ("!date1!") do (
  6. set user=%%c
  7. set date2=%%d
  8. for /f "tokens=1,*  delims=^=" %%e in ("!date2!") do (
  9. set pass=%%f
  10. )
  11. )
  12. )
  13. )
  14. echo 取得user数据:!user!
  15. echo 取得pass数据:!pass!
  16. pause>nul
复制代码

TOP

  1. @echo off
  2. for /f "skip=1 tokens=2-5 delims=?=&" %%i in (test.txt) do (
  3.     set "%%i=%%j"
  4.     set "%%k=%%l"
  5. )
  6. echo,%user%
  7. echo,%pass%
  8. pause
复制代码

TOP

回复  helpless
yakeyun 发表于 2022-5-11 00:28



    感谢大神,测试可用

TOP

回复 3# qixiaobin0715


    感谢大神,测试可用

TOP

补充一个powershell正则提取
  1. [regex]::matches((gc test.txt),'(?<=user=|pass=)\w{8}').value
复制代码

TOP

返回列表