返回列表 发帖
回复 15# 5i365
((type test.txt) -match "_[$](abctitle|cdectitl)_") -replace "^.*=",""COPY
1

评分人数

TOP

回复 16# idwma


    输出值是:

_$abctitle_澶т腑鍥?灏忔棩鏈? 缇庡浗浣?
_$cdectitl_澶т腑鍗?灏忔棩鏈? 鑻卞浗浣?

TOP

本帖最后由 idwma 于 2021-10-31 18:28 编辑

回复 17# 5i365

测了是可以的呀

TOP

回复 18# idwma


    刚试了一下, 要把test.txt的编码格式改为ansi 才可以

感觉可能还有更简单的办法

TOP

回复 18# idwma


    用这种办法 我需要先把_$abctitle_ 先改成 _[$](abctitle)_  这样才可以

TOP

串个频道

本帖最后由 523066680 于 2021-10-31 22:03 编辑
use utf8;
use Encode;
my $str='
_$abctitle_大中国=小日本, 美国佬!
_$cdectitl_大中华=小日本, 英国佬!';
while ( $str =~ /_\$\w+_[^=]*=(.+)$/gm) { print encode('gbk', $1),"\n" }COPY
Perl, 保存为 utf-8 执行

结果按GBK输出
小日本, 美国佬!
小日本, 英国佬!COPY
[url=][/url]

TOP

回复 21# 523066680


    牛, 如果能在Powershell中用正则直接取就好了

TOP

回复 1# 5i365


http://bcn.bathome.net/s/tool/index.html?key=sed
type 1.txt | find "_$abctitle_" | sed "s/.*=//" >2.txt
type 1.txt | find "_$cdectitl_" | sed "s/.*=//" >3.txtCOPY
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 1# 5i365


2.bat
@echo off
for /f "tokens=2 delims==" %%i in ('type 1.txt ^| find "_$abctitle_"') do (
    set "str1=%%i"
)
for /f "tokens=2 delims==" %%i in ('type 1.txt ^| find "_$cdectitl_"') do (
    set "str2=%%i"
)
echo,%str1%
echo,%str2%
pauseCOPY
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 24# Batcher


    如何在ps下使用cmd取值, 下面的方法, 取不到
cmd /c "for /f "tokens=2 delims==" %%i in ('type 1.txt ^| find "_$abctitle_"') do ( echo%%i)"

TOP

本帖最后由 523066680 于 2021-11-1 13:10 编辑

'$abctitle' 字面强行保留原样(还是perl)
my $k1 = '$abctitle';
my $k2 = '$cdectitl';
while ( $str =~ /_(?:\Q$k1\E|\Q$k2\E)_[^=]*=(.+)$/gm) { print encode('gbk', $1),"\n" }COPY
或者在 $ 前面加斜杠,起码没有把它们从字面上拆开或者从中间插入其他符号
while ( $str =~ /_(?:\$abctitle|\$cdectitl)_[^=]*=(.+)$/gm) { print encode('gbk', $1),"\n" }COPY
[url=][/url]

TOP

test.txt(简中编码):
_$abctitle_大中国=小日本, 美国佬!
_$cdectitl_大中华=小日本, 英国佬!

在powershell命令行运行代码如下:
foreach ($t in type 'test.txt') {$t=($t -replace '.*=');Write-Host $t;}
屏显运行结果:
小日本, 美国佬!
小日本, 英国佬!

TOP

返回列表