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

[文本处理] [已解决]批处理根据文本内容输出对应内容?

123.txt:
abcabc,111
cc,0123

abc.txt:
abcabc_abcdef
cc_0123abcd

输出a.txt:
111+ABC.abcdef
0123+ABC.0123abcd

已解决!

本帖最后由 flashercs 于 2022-5-30 14:10 编辑
  1. <#*,:&cls
  2. @echo off
  3. cd /d "%~dp0"
  4. powershell -C "Set-Location -LiteralPath ([Environment]::CurrentDirectory);. ([ScriptBlock]::Create((Get-Content -LiteralPath \"%~f0\" -ReadCount 0 | Out-String)))"
  5. pause
  6. exit /b
  7. #>
  8. $file1 = "123.txt"
  9. $file2 = "abc.txt"
  10. # 格式化字符串
  11. $format = '{0}+ABC.{1}'
  12. $ht = @{}
  13. foreach ($line in (Get-Content -ReadCount 0 -LiteralPath $file1)) {
  14.   $k, $v = $line -split ',', 2
  15.   $ht[$k] = $v
  16. }
  17. $(foreach ($line in (Get-Content -ReadCount 0 -LiteralPath $file2)) {
  18.     $k, $v = $line -split '_', 2
  19.     if ($ht.ContainsKey($k)) {
  20.       $format -f ($ht[$k]), $v
  21.     }
  22.   }) | Set-Content -LiteralPath .\a.txt
复制代码
1

评分人数

    • czvde: 感谢分享技术 + 1
微信:flashercs
QQ:49908356

TOP

回复 1# czvde


请参考Q-04和Q-05把bat文件和txt文件都保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. for /f "tokens=1-2 delims=," %%i in ('type "123.txt"') do (
  5.     set "%%i=%%j"
  6. )
  7. (for /f "tokens=1-2 delims=_" %%i in ('type "abc.txt"') do (
  8.     if defined %%i (
  9.         echo !%%i!+ABC.%%j
  10.     )
  11. ))>"a.txt"
复制代码
1

评分人数

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

TOP

返回列表