繁体   English   中英

Windows批处理文件:根据输入文件(目标文件名)重命名文件(可能在多个文件夹中)

[英]Windows batch file: rename files (possibly in multiple folders) based on input file (of target filenames)

我是一批新手,所以请接受我的道歉,并提前致谢!

该“工具”是通过禁用某些系统驱动程序,DLL和EXE文件来自动瘦身Windows(XP)。 我希望直接就地重命名,而不是直接删除,从而从操作系统中“删除”它们,但又不要忘记它们的所属位置(应该“恢复”)。 重命名是通过在现有文件名后附加新的后缀(例如:“ wdmaud.drv.group_1”)来完成的。重命名后缀应为另一个输入变量。

目标列表约为。 1100个文件长(分为多个组/阶段),因此无需手动重命名。 每个组将在批处理文件的单独运行中进行处理,并为每次执行更改目标列表输入文件。

目标列表是纯文本文件,每行一个文件名(文件中没有其他数据)。 每个组的条目数各不相同。 目标列表如下所示:

    -- example start --
    netapi.dll
    netcfgx.dll 
    netdde.exe 
    netevent.dll 
    neth.dll
    netid.dll
    netrap.dll
    nic1394.sys
    -- example end --

文件名可能是大写,小写或MiXeD。 这些文件可能存在于C:\\ Windows层次结构中的多个文件夹中,或者可能根本不存在。 如果在系统中的任何位置都找不到文件,则应将其名称写入文本文件,每行一个条目。

感兴趣的特定文件夹是:

    C:\WINDOWS\
    C:\WINDOWS\system\
    C:\WINDOWS\system32\
    C:\WINDOWS\system32\dllcache
    C:\WINDOWS\system32\drivers

重命名将通过将目标OS驱动器连接到另一台XP计算机来完成,因此锁定的系统文件应该不是问题。

您能提供的任何帮助将不胜感激。

FOR循环可能会对您有所帮助。.这是一个非常简单的示例,只是为了帮助您入门

for /f "tokens=*" %%f in (%targetlist%) do (
  for /f "tokens=*" %%d in (%dirlist%) do (
    if exist "%%d\%%f" echo %%f found in %%d
  )
)

请参阅HELP FOR

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM