无忧启动论坛

标题: 新手求助,求一个批处理 [打印本页]

作者: youxia1220    时间: 2025-2-7 11:47
标题: 新手求助,求一个批处理
新手,不会批处理,求一个批处理
给定一个txt文本文件,按照文本文件列出的文件名在\Windows\System32\zh-CN目录中搜索同名的.mui文件,如有,返回一个包含所有.mui文件名的文本文件.不需要复制文件.
谢谢!

作者: vaf    时间: 2025-2-7 12:24

作者: martin313    时间: 2025-2-7 12:26
本帖最后由 martin313 于 2025-2-7 12:28 编辑

这个求助DeekSeek,就能给你解决

把前置条件尽量描述清楚,它就能帮忙很好完成


作者: 逍遥逸仙    时间: 2025-2-7 12:33
我也不懂,把你的需求扔给deepseek,它写的:

@echo off
setlocal enabledelayedexpansion

:: 参数设置
set "input_file=%~1"
set "output_file=MUI_List.txt"
set "target_dir=%windir%\System32\zh-CN"

:: 检查输入文件是否存在
if not exist "%input_file%" (
    echo 错误:输入文件 "%input_file%" 不存在
    pause
    exit /b
)

:: 清空并创建输出文件
break > "%output_file%"

:: 搜索并记录MUI文件
for /f "usebackq delims=" %%F in ("%input_file%") do (
    if exist "%target_dir%\%%F.mui" (
        echo %%F.mui >> "%output_file%"
    )
)

echo 完成!结果已保存至 %output_file%
pause




作者: youxia1220    时间: 2025-2-7 12:42
逍遥逸仙 发表于 2025-2-7 12:33
我也不懂,把你的需求扔给deepseek,它写的:

@echo off

谢谢
!刚刚还和同事说,怎么不问问AI,您还真的问AI了.
作者: 2010天月来了    时间: 2025-2-7 14:19
哈哈哈,虽然不是万能,但是尝试后,也许就解决问题了
作者: martin313    时间: 2025-2-7 14:24

我已经让 AI 帮我解决了2个问题了,搞成了2个比较复杂的批处理。比楼主的问题,复杂多了。
作者: cutebe    时间: 2025-2-7 14:48
@echo off
pushd \Windows\System32\zh-CN
(
for /f "delims=" %%m in ('type 路径\文本.txt') do (
  dir/s/b/a-d "%%m.mui" 2>nul
)>返回列表.txt
popd
作者: yyz2191958    时间: 2025-2-7 14:53
cutebe 发表于 2025-2-7 14:48
@echo off
pushd \Windows\System32\zh-CN
(

助人为乐
作者: youxia1220    时间: 2025-2-7 15:09
cutebe 发表于 2025-2-7 14:48
@echo off
pushd \Windows\System32\zh-CN
(

谢谢!好像不行啊?
作者: youxia1220    时间: 2025-2-7 15:10
逍遥逸仙 发表于 2025-2-7 12:33
我也不懂,把你的需求扔给deepseek,它写的:

@echo off

试一试,没搞定.
作者: 逍遥逸仙    时间: 2025-2-7 16:38
youxia1220 发表于 2025-2-7 15:10
试一试,没搞定.

那你把错误信息多反馈给它几次,它就能给你调试好
作者: martin313    时间: 2025-2-7 16:45
youxia1220 发表于 2025-2-7 15:09
谢谢!好像不行啊?


这个肯定要自己修改完善,或者反馈错误给AI啊

话说楼主这个是用作啥的呢
作者: cutebe    时间: 2025-2-7 16:47
标题: 系统盘符如果不是C:则修改一下
本帖最后由 cutebe 于 2025-2-7 16:48 编辑

::文本拖入批
@echo off
cd.>%~dp0返回列表.txt
pushd C:\Windows\System32\zh-CN
for /f "delims=" %%m in ('type "%~1"')do (
  dir /b/a-d "%%m.mui"
)>>%~dp0返回列表.txt
作者: martin313    时间: 2025-2-7 17:10
cutebe 发表于 2025-2-7 16:47
::文本拖入批
@echo off
cd.>%~dp0返回列表.txt


牛逼啊
作者: szwp    时间: 2025-2-7 18:25
youxia1220 发表于 2025-2-7 12:42
谢谢
!刚刚还和同事说,怎么不问问AI,您还真的问AI了.

试试自己去问
作者: youxia1220    时间: 2025-2-7 19:04
martin313 发表于 2025-2-7 16:45
这个肯定要自己修改完善,或者反馈错误给AI啊

话说楼主这个是用作啥的呢

手搓PE,给dll,exe,cpl等文件找配对的mui文件.
作者: martin313    时间: 2025-2-7 19:13
youxia1220 发表于 2025-2-7 19:04
手搓PE,给dll,exe,cpl等文件找配对的mui文件.


牛逼的


作者: youxia1220    时间: 2025-2-7 19:13
martin313 发表于 2025-2-7 17:10
牛逼啊

谢谢,好像也不行.
set source_folder=C:\Windows\System32\zh-CN
set file_type=*.mui  
dir /B /S %source_folder%\%file_type% > files.txt
列出所有mui文件,用BC对比的笨办法搞定了.
作者: martin313    时间: 2025-2-7 19:26
本帖最后由 martin313 于 2025-2-7 19:28 编辑
youxia1220 发表于 2025-2-7 19:04
手搓PE,给dll,exe,cpl等文件找配对的mui文件.


那我感觉这个问题还不够复杂化

我前几天让deepseek干的活,比你这个复杂了。就是根据提供的txt文件,比如按下述清单
Windows\System32\appwiz.cpl
Windows\System32\desk.cpl
Windows\System32\bthprops.cpl
Windows\System32\FirewallControlPanel.dll
Windows\System32\inetcpl.cpl
Windows\System32\hdwwiz.cpl

自动提取这些文件,并自动提取对应的mui、mun等文件到我指定的目录文件夹中,这些提取到的文件目录结构还要与映像文件目录结构保持一致!
而且语言版本,比如zh-CN、zh-TW、en-US语言版本自适应!呵呵……

作者: youxia1220    时间: 2025-2-7 19:33
martin313 发表于 2025-2-7 19:26
那我感觉这个问题还不够复杂化

我前几天让deepseek干的活,比你这个复杂了。就是根据提供的txt文件 ...

发出来参观参观.
作者: c12378    时间: 2025-2-7 19:52
参观学习
作者: hilsonma    时间: 2025-2-8 00:21
本帖最后由 hilsonma 于 2025-2-8 00:40 编辑

楼主的应用场景没有表述清楚。给定的文本文件是一个还是多个,文本文件名是固定的还是变化的,文本内容是现成的还是楼主多次编辑多次搜索的,根据这些不同所制作的批也有不同的应对。
下面是适用于多个给定的文本的批
  1. @echo off
  2. if %1.==. (echo.&set /p lst=请将查找清单文本文件拖放到本窗口后按回车键:) else set lst=%1
  3. del /q mui.txt >nul 2>nul
  4. for /f %%a in (%lst%) do if exist c:\windows\system32\zh-cn\%%a.mui echo %%a.mui>>mui.txt
复制代码


如果是只有一个固定文件名的文本文件,假设文本文件名为list.txt,放在跟批处理同一个文件夹,那么批如下:
  1. @echo off
  2. del /q mui.txt >nul 2>nul
  3. for /f %%a in (list.txt) do if exist c:\windows\system32\zh-cn\%%a.mui echo %%a.mui>>mui.txt
复制代码

作者: wang1126    时间: 2025-2-8 05:31
谢谢楼主分享
作者: youxia1220    时间: 2025-2-8 08:48
hilsonma 发表于 2025-2-8 00:21
楼主的应用场景没有表述清楚。给定的文本文件是一个还是多个,文本文件名是固定的还是变化的,文本内容是现 ...

谢谢!
作者: youxia1220    时间: 2025-2-8 08:53
youxia1220 发表于 2025-2-8 08:48
谢谢!

刚刚试了,就一个固定的文本文件,二种都没有mui.txt输出.
作者: szwp    时间: 2025-2-8 09:09
要在几个盘查没说清啊
作者: 窄口牛    时间: 2025-2-8 09:46
martin313 发表于 2025-2-7 14:24
我已经让 AI 帮我解决了2个问题了,搞成了2个比较复杂的批处理。比楼主的问题,复杂多了。

写了啥,我搞登陆网站的vbs,就是繁忙,再试,也不知道是真忙还是难度超纲。
作者: martin313    时间: 2025-2-8 10:28
窄口牛 发表于 2025-2-8 09:46
写了啥,我搞登陆网站的vbs,就是繁忙,再试,也不知道是真忙还是难度超纲。


如果是繁忙,应该是真忙;估计是被持续攻击
作者: martin313    时间: 2025-2-8 11:11
youxia1220 发表于 2025-2-7 19:04
手搓PE,给dll,exe,cpl等文件找配对的mui文件.


嘿嘿,亏你提醒,我的批处理少了对cpl的处理。马上加上,嘿嘿……
作者: hilsonma    时间: 2025-2-8 12:14
youxia1220 发表于 2025-2-8 08:53
刚刚试了,就一个固定的文本文件,二种都没有mui.txt输出.

这个文本文件的完整路径是什么?(盘符及各级目录及文件名扩展名)

给定一个txt文本文件,按照文本文件列出的文件名在\Windows\System32\zh-CN目录中搜索同名的.mui文件

\Windows\System32\zh-CN 是在哪个盘?


作者: youxia1220    时间: 2025-2-8 12:18
hilsonma 发表于 2025-2-8 12:14
这个文本文件的完整路径是什么?(盘符及各级目录及文件名扩展名)

C盘
作者: hilsonma    时间: 2025-2-8 12:33
本帖最后由 hilsonma 于 2025-2-8 12:36 编辑
youxia1220 发表于 2025-2-8 12:18
C盘

\Windows\System32\zh-CN 是在C盘吗?
那个固定的文本文件在哪个盘哪个目录什么文件名?
以及固定文件的内容能不能展示一下(只需要一部分)
作者: youxia1220    时间: 2025-2-8 13:01
本帖最后由 youxia1220 于 2025-2-8 13:04 编辑
youxia1220 发表于 2025-2-8 12:18

文本文件list.txt盘符为E盘(这个随意,可以修改bat文件中文本文件路径),为简单起见,只查找C:\windows\system32\目录下dll,exe,cpl等扩展名文件在C:\windows\system32\ch-ZN文件夹中同名后缀为mui文件,若有,返回mui文件列表并生成mui.txt文本文件.
如有可能,给定文本文件list.txt不局限于C:\windows\system32\一个路径,而是包含多个路径,对于文本文件中的任意文件,能否首先查找同级目录下是否存在zh-CN文件夹,若有,在zh-CN文件夹中查找同名后缀为mui文件, 返回mui文件路径文件名并生成mui.txt文本文件.
list.txt文本文件示例:
c:\Windows\explorer.exe
c::\Windows\Branding\Basebrd\basebrd.dll
C:\Windows\System32\drivers\acpiex.sys
c:\Windows\System32\Windows.StateRepositoryBroker.dll
返回的mui.txt文件示例:
c:\Windows\zh-cn\explorer.exe.mui
c:\Windows\Branding\Basebrd\zh-cn\basebrd.dll.mui
C:\Windows\System32\drivers\zh-cn\acpiex.sys.mui
c:\Windows\System32\zh-cn\Windows.StateRepositoryBroker.dll.mui
作者: youxia1220    时间: 2025-2-8 13:30
hilsonma 发表于 2025-2-8 12:33
\Windows\System32\zh-CN 是在C盘吗?
那个固定的文本文件在哪个盘哪个目录什么文件名?
以及固定文件 ...

还有一种特殊情况,需要返回后缀为_loc的文件名,而且和zh-cn文件夹不在同一目录下.如:
c:\Windows\System32\DriverStore\FileRepository\netvwifibus.inf_amd64_ab4e111fe8221178\netvwifibus.inf
返回的文件名为:
c:\Windows\System32\DriverStore\zh-CN\netvwifibus.inf_loc
这种文件很少,手工处理就i好了.
作者: hilsonma    时间: 2025-2-8 15:06
本帖最后由 hilsonma 于 2025-2-8 15:16 编辑
youxia1220 发表于 2025-2-8 13:01
文本文件list.txt盘符为E盘(这个随意,可以修改bat文件中文本文件路径),为简单起见,只查找C:\windows\syst ...

难怪,我原来以为文本里的内容只是文件名的,不包含路径的,现在修改如下:
  1. @echo off
  2. del /q mui.txt
  3. for /f %%I in (list.txt) do if exist %%~dpI\zh-cn\%%~nxI.mui echo %%~dpI\zh-cn\%%~nxI.mui>>mui.txt
  4. if exist mui.txt (start mui.txt) else (echo 没有找到相关的mui文件.&pause)
复制代码

作者: youxia1220    时间: 2025-2-8 15:21
hilsonma 发表于 2025-2-8 15:06
难怪,我原来以为文本里的内容只是文件名的,不包含路径的,现在修改如下:

谢谢大佬指点!
作者: martin313    时间: 2025-2-8 15:46
youxia1220 发表于 2025-2-8 12:18
C盘

可能要考虑复杂些
一种情形是C盘
另一种情形是ISO映像install.wim挂载到D盘或者E盘的某个文件夹
等等
作者: wuliyen    时间: 2025-2-8 16:14
youxia1220 发表于 2025-2-8 15:21
谢谢大佬指点!

一个好的规划,新建一个工作目录,list.txt放在此目录根部,镜像文件也放在根部,然后挂载镜像到本目录文件夹,如MOUNT,查找后卸载镜像
作者: martin313    时间: 2025-2-8 17:17
youxia1220 发表于 2025-2-8 15:21
谢谢大佬指点!


不考虑 Windows\System32\drivers\zh-CN\*.sys.mui 情形?

哈哈……





欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3