首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较不同目录中的文件名(减扩展名),如果名称与AutoHotkey相同,则复制/移动

比较不同目录中的文件名(减扩展名),如果名称与AutoHotkey相同,则复制/移动
EN

Stack Overflow用户
提问于 2019-02-28 21:10:56
回答 1查看 293关注 0票数 1

我想比较两个目录之间的文件名(减扩展名),如果有匹配,将文件从两个目录中的一个复制(或移动tbd)到第三个目录。即

Dir_A有a.jpg,b.jpg,c.jpg,d.jpg,e.jpg,f.jpg

Dir_B有a.pdf,c.pdf,d.pdf,f.pdf

结果是

Dir_C得到a.jpg,c.jpg,d.jpg,f.jpg

我已经能够完成与批处理文件,但希望学习如何通过AHK。

批处理文件是:

代码语言:javascript
复制
@Echo Off & SetLocal EnableExtensions
pushd D:\temp
For /F "tokens=*" %%I IN ('dir /a-d /b *.jpg') DO (
    IF EXIST "D:\temp\comp\%%~nI.pdf" move "%%~I" "D:\temp\new\" 
)

经过大量的查找,找到了类似的帖子,并试图插值,我认为我是接近,但显然是遗漏了一些东西。我希望有人能帮我弄清楚这件事。

代码语言:javascript
复制
#NoEnv
SendMode Input

SFolder:="D:\temp\"         ;Source folder
CFolder:="D:\temp\comp"     ;Compare folder
DestDir:="D:\temp\new"      ;where to move files

Loop,
 {
    Loop, %SFolder%*.jpg        ;look for all jpg files
    JpgName = %A_LoopFileName%  ;save the file names to var 
    Loop, %CFolder%*.pdf        ;look for all pdf files
    PdfName = %A_LoopFileName%  ;save the file names to var

    JpgCompare:=Trim(JpgName,".jpg")    ;remove the files .ext
    PdfCompare:=Trim(PdfName,".pdf")    ;remove the files .ext

    If JpgCompare = %PdfCompare%    ;if there are matching file names (minus .ext)
                                    ;in both directories
    {
        FileMove, %JpgName%, %DestDir%  ;move the file.jpg to the "new" directory
    }
    Else
    {}
 }
Esc::
ExitApp
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-28 22:16:54

您可以使用SplitPath在变量(name_no_ext)中不使用路径、点和扩展名来存储jpg文件名,并使用FileExist()检查其他目录中是否存在具有相同名称的pdf文件。

代码语言:javascript
复制
SFolder:="D:\temp\"         ;Source folder
CFolder:="D:\temp\comp"     ;Compare folder
DestDir:="D:\temp\new"      ;where to move files

Loop Files, %SFolder%*.jpg        ;look for all jpg files
{
    SplitPath, A_LoopFileName,,,, name_no_ext
    If FileExist(CFolder . "\" . name_no_ext . .pdf)
        FileMove, %A_LoopFileFullPath%, %DestDir%  ;move the file.jpg to the "new" directory
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54934317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档