找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19729|回复: 2

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

[复制链接]
发表于 2022-5-30 11:44:54 | 显示全部楼层 |阅读模式
123.txt:
abcabc,111
cc,0123

abc.txt:
abcabc_abcdef
cc_0123abcd

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

已解决!
发表于 2022-5-30 13:28:46 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
czvde + 1 感谢分享

查看全部评分

发表于 2022-5-30 14:22:51 | 显示全部楼层
回复 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技术 +1 收起 理由
czvde + 1 乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 00:27 , Processed in 0.019047 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表