繁体   English   中英

需要一个可以根据文件名查找文件夹的批处理文件

[英]Need a batch file that can find folders based on filenames

我需要一个批处理文件或实用程序,该文件或实用程序将能够找到不再需要的任何“未压缩存档文件夹”,并且由于原始存档文件仍然存在,因此可以将其删除。

关键是“未压缩的文件夹”和“原始存档文件”始终具有相同的名称,但存档文件的文件扩展名除外。 我不想自动删除任何内容; 我只想创建一个可以手动检出的文件夹列表。 因此,该序列将分为四个步骤:

1)使用通配符(例如* .zip,*。rar,*。iso)搜索所有存档文件2)创建找到的所有文件名的列表-减去文件扩展名3)使用在第二步中创建的列表来搜索具有这些名称的任何文件夹4)创建一个文本文件,其中包含在第三步中找到的所有文件夹。

我尝试修改在这些帖子中找到的批处理文件,但是该文件不起作用,我想从头开始。 任何帮助将不胜感激。

谢谢

好的,我将逐步进行此操作:

第1步:

set dir="C:\...[path to root directory]" 
where /r %dir% *.zip *.iso *.rar >> log.txt

请注意,如果使用Windows 7 where则应在计算机上使用where实用程序。

第2步:

ren log.txt log.tmp
for /f "delims=." %%a in (log.tmp) do (Echo %%a >> log.txt)
del log.tmp

上面的代码将不处理带有句点的文件名

第三步:

for /f "tokens=*" %%a in (log.txt) do (
where /r %dir% %%a* >> files.txt
)

不能100%确定上述方法是否可行,请告诉我是否可行。

第四步:

Rem This code will handle file paths to directories
Ren files.txt files.tmp
for /f "tokens=*" %%a in (files.tmp) do (
Echo %%~pa >> files.txt
)
del files.tmp

Rem The below code will ged rid of repeated direcotries
ren files.txt files.tmp
Echo. > files.txt

setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (files.tmp) do (
set var=1
for /f "tokens=*" %%b in (files.txt) do (
if "%%~a" equ "%%~b" set var=0
)
if !var!==1 Echo %%a >> files.txt
)
del files.tmp

而且我相当有信心。 当然,我还没有对此进行测试,但是在@Echo on并且在每个派别之间(或作为单独的批处理文件)之间使用暂停命令来运行所有这些,因此,如果确实发生错误,我可以尝试为您提供帮助。

希望这对您有所帮助,Mona。

@echo off

    setlocal enableextensions

    set "rootDir=d:\_data_"
    set "fileList=%~dp0\%~n0.files.list"
    set "folderList=%~dp0\%~n0.folders.list"

    rem generate list of compressed files names
    break > "%fileList%"
    for /F "tokens=*" %%f in ('where /r "%rootDir%" *.zip *.rar *.iso *.7z 2^>nul') do (
        >> "%fileList%" echo %%~nf
    )

    rem check compressed file list against directory list
    break > "%folderList%"
    for /F "tokens=*" %%f in ('dir "%rootDir%" /s /b /ad ^| findstr /e /g:"%fileList%" ') do (
        >> "%folderList%" echo %%f
    )

    type "%folderList%"

    endlocal

暂无
暂无

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

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