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

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

有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两个文件,能否有一个简洁的方案可以实现类似的功能

?你的任何帮助我都将非常感谢,谢谢!

文档内容相同,这个还好判断,用hash值对比。
但内容相近,个人感觉这个不太好判断吧,判断字符数量、文件大小都不行。
必须对文字内容进行相似度判断,而且文字内容如果一样,但顺序不一样,算不算相近呢?

TOP

回复 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
复制代码

TOP

  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
复制代码
微信:flashercs
QQ:49908356

TOP

回复 2# fzp070
理解偏差了!谢谢!

TOP

回复 3# Echo11
理解正确。代码测试运行正常,非常感谢!感谢你的帮助,

TOP

回复 4# flashercs

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

TOP

回复 7# WBATW


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

评分人数

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

TOP

回复 8# Batcher
谢谢!
测试文件:打开 文件@文件夹.rar下载
    链接:https://pan.baidu.com/s/1Gt8TjqGXenV55o08-8Pz6g?pwd=d4p5
提取码:d4p5

TOP

回复 8# Batcher
请问大师 测试文件收到了吗?原因是否找到?

TOP

本帖最后由 WBATW 于 2023-2-12 17:43 编辑

最后的遗憾,没有得到回复。但是,还是非常感谢 fzp070大师的帮助.谢谢!

TOP

返回列表