标题: [文本处理] 【已解决】批处理如何把有特殊字符的文本截取,并且给两个变量? [打印本页]
作者: helpless 时间: 2022-5-10 21:37 标题: 【已解决】批处理如何把有特殊字符的文本截取,并且给两个变量?
本帖最后由 helpless 于 2022-5-11 15:49 编辑
test.txt文件是两行的:
testonly
test deviceinfo Mode Success:123.html?user=gqzOTT5W&pass=KuNe8rAy
请问要怎么把gqzOTT5W和KuNe8rAy截取出来并给于变量?
user=后面8位是随机的
pass=后面8位也是随机的
每个设备不一样,但是位置和位数是固定的
谢谢
作者: yakeyun 时间: 2022-5-11 00:28
回复 1# helpless - @echo off&setlocal enabledelayedexpansion
- for /f "tokens=1,* delims=^=" %%a in (test.txt) do (
- set date1=%%b
- if defined date1 (
- for /f "tokens=1,* delims=^&" %%c in ("!date1!") do (
- set user=%%c
- set date2=%%d
- for /f "tokens=1,* delims=^=" %%e in ("!date2!") do (
- set pass=%%f
- )
- )
- )
- )
- echo 取得user数据:!user!
- echo 取得pass数据:!pass!
- pause>nul
复制代码
作者: qixiaobin0715 时间: 2022-5-11 09:20
- @echo off
- for /f "skip=1 tokens=2-5 delims=?=&" %%i in (test.txt) do (
- set "%%i=%%j"
- set "%%k=%%l"
- )
- echo,%user%
- echo,%pass%
- pause
复制代码
作者: helpless 时间: 2022-5-11 15:48
回复 helpless
yakeyun 发表于 2022-5-11 00:28
感谢大神,测试可用
作者: helpless 时间: 2022-5-11 15:48
回复 3# qixiaobin0715
感谢大神,测试可用
作者: for_flr 时间: 2022-5-11 17:12
补充一个powershell正则提取- [regex]::matches((gc test.txt),'(?<=user=|pass=)\w{8}').value
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |