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

[文本处理] BAT或JS如何根据文本中的内容,核对文件名?

先谢谢您啦。

现有文本1.TXT,内容如下:
  1. https://www.***.com/75013950
  2. https://www.***.com/55325876
  3. https://www.***.com/61879076
  4. https://www.***.com/50140585
  5. https://www.***.com/12904418
  6. https://www.***.com/36633503
复制代码
每一行最后的数字,应该在桌面yuantu文件夹中,对应有图片文件才对。比如第一行末尾的数字是75013950,应该在yuantu文件夹中存在一个 75013950.jpg 的图片文件。

请问,如何用BAT 或者 JS 的方式,根据1.txt里的数字,检查yuantu文件夹中,缺少哪个数字的图片文件,并输出结果到2.txt
谢谢您啦

powershell
  1. $file = "a.txt"
  2. $path = "yuantu"
  3. get-content $file | foreach {
  4.     if ($_ -match "\d+$")
  5.     {
  6.         if (-not(test-path $path\$matches[0]))
  7.             {
  8.                 $str = $str + $matches[0] + "`n"
  9.             }
  10.     }
  11. }
  12. $str
复制代码
1

评分人数

TOP

这样应当也行。test.bat和1.txt文件放在图片目录下:
  1. @echo off
  2. (for /f "delims=" %%a in (1.txt) do if not exist %%~na.jpg echo,不存在文件:%%~na.jpg)>2.txt
  3. pause
复制代码
1

评分人数

TOP

本帖最后由 qixiaobin0715 于 2021-6-18 10:50 编辑

把test.bat和1.txt放在桌面或与文件夹yuantu平行的目录中运行,未经测试:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in ("yuantu\*.jpg") do set -%%~na=ture
  4. (for /f "delims=" %%i in (1.txt) do if not defined -%%~ni echo,不存在文件:%%~ni.jpg)>2.txt
  5. pause
复制代码

TOP

返回列表