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

[文本处理] BAT批处理设置start命令的变量一次(依次)打开两个文件

[复制链接]
发表于 2022-9-18 18:19:47 | 显示全部楼层 |阅读模式
有Ha.txt Hb.txt两个文件,它是两个不同内容的文件列表文本,当内容相同或

者相近时。用如下代码打开能正常运行:这只是描述给你的一种情况。
for /f "delims=" %%j in (Ha.txt Hb.txt) do (
    set "a=%%j"
    start "" "!a!"
)

然而,我希望的是要变成类似于这样:
for /f "delims=" %%j in (Ha.txt Hb.dwg) do (
    set "Ha=%%j"
    set "Hb=%%j"...
    start "" "!Ha!"
    start "" "!Hb!"
)
分别对应打开Ha 和 Hb两个文件,能否有一个简洁的方案可以实现类似的功能

?你的任何帮助我都将非常感谢,谢谢!
发表于 2022-9-18 19:56:17 | 显示全部楼层
文档内容相同,这个还好判断,用hash值对比。
但内容相近,个人感觉这个不太好判断吧,判断字符数量、文件大小都不行。
必须对文字内容进行相似度判断,而且文字内容如果一样,但顺序不一样,算不算相近呢?
发表于 2022-9-18 20:45:45 | 显示全部楼层
回复 1# WBATW


    同2楼,主要你需求表述不明确。

目前我按照我的理解,
如果Ha.txt内容如下:
  1. Ha1.txt
  2. Ha2.txt
  3. Ha3.txt
复制代码
Hb.txt内容如下:
  1. Hb1.txt
  2. Hb2.txt
  3. Hb3.txt
复制代码
如果是要同时打开两个文件的第n行的文件,比如Ha1.txt和Hb1.txt,那么代码可以这么写:
  1. @ECHO OFF
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. set m=0
  5. for /f "delims=" %%i in (Ha.txt) do (
  6.         set /a n+=1
  7.     set "a!n!=%%i"
  8. )
  9. for /f "delims=" %%j in (Hb.txt) do (
  10.         set /a m+=1
  11.     set "b!m!=%%j"

  12. )
  13. if %n% GEQ %m% (set "i=%n%") else (set "i=%m%")
  14. FOR /L %%k IN (1,1,%i%) DO (
  15.         if exist !a%%k! start "" "!a%%k!"
  16.         if exist !b%%k! start "" "!b%%k!"
  17. )
  18. pause
复制代码
发表于 2022-9-18 20:52:44 | 显示全部楼层
  1. @echo off
  2. cd /d %~dp0
  3. setlocal EnableDelayedExpansion
  4. (
  5. for /f "delims=" %%j in (Ha.txt) do (
  6.     set "Ha=%%j"
  7.     set /p "Hb="
  8.     start "" "!Ha!"
  9.     start "" "!Hb!"
  10. )
  11. )<Hb.txt
  12. endlocal
  13. pause
复制代码
 楼主| 发表于 2022-9-19 16:48:58 | 显示全部楼层
回复 2# fzp070
理解偏差了!谢谢!
 楼主| 发表于 2022-9-19 16:53:56 | 显示全部楼层
回复 3# Echo11
理解正确。代码测试运行正常,非常感谢!感谢你的帮助,
 楼主| 发表于 2022-9-19 17:34:41 | 显示全部楼层
回复 4# flashercs

代码简洁一些,很好,测试运行还有点小问题请教大师如下:
运行bat批处理:
1. 将Ha、Hb列表本身打开(偶得这个功能相当于打开了列表目录,很好,
但是有时候打开一个有时候没有打开);
2. 将Ha、Hb列表下的所列出的文件打开(很好,甚至我添加一个指定程序【start notepad.exe "!Hb!"】运行都很好!但是,有时候重复打开
一个或者有个别的没有被打开);
3. 总结:特别是打开Hb.txt这个的时候有些不稳定,
    除1.、2.条描述外,打开的顺序不稳定和列表下的文件顺序也不稳定(这个所谓的先后顺序不影响代码执行结果,只是观察到出现此种情况时会产生其它问题)。先后顺序正常时都全部正常打开了;先后顺序出现有交错颠倒时打开的文件就时多时少不定。
综上所述:烦请大师查看一下代码可否有修改或者我电脑系统问题请指出。谢谢!非常感谢你的帮助!
发表于 2022-9-19 21:38:51 | 显示全部楼层
回复 7# WBATW


    请把你测试4楼代码使用的Ha.txt和Hb.txt打包压缩上传到网盘

评分

参与人数 1技术 +1 收起 理由
WBATW + 1 谢谢

查看全部评分

 楼主| 发表于 2022-9-20 00:00:49 | 显示全部楼层
回复 8# Batcher
谢谢!
测试文件:打开 文件@文件夹.rar下载
    链接:https://pan.baidu.com/s/1Gt8TjqGXenV55o08-8Pz6g?pwd=d4p5
提取码:d4p5
 楼主| 发表于 2022-9-23 22:02:08 | 显示全部楼层
回复 8# Batcher
请问大师 测试文件收到了吗?原因是否找到?
 楼主| 发表于 2022-10-22 20:52:58 | 显示全部楼层
本帖最后由 WBATW 于 2023-2-12 17:43 编辑

最后的遗憾,没有得到回复。但是,还是非常感谢 fzp070大师的帮助.谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 14:28 , Processed in 0.021548 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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