1

Тема: AHK: Поиск папки

Добрый день!! Подскажите пож-та, если в папке нету файлов с именем "паспорт" и нет "wmv", то как это выявить?


#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
#SingleInstance force 

FormatTime, TimeString, , dd.MM.yyyy

Folder := % "С:\DOC\" TimeString


	 Numb := 0
Loop, %Folder%\*, 2, 1
    if A_LoopFileAttrib not contains H
        Numb ++

Doc := 0
Loop, %Folder%\паспорт*.pdf, 1, 1
		Doc++


Video := 0
Loop, %Folder%\*.wmv, 1, 1
		Video++



Gui, +ToolWindow +AlwaysOnTop 
Gui, Font, s15 italic 

Gui, Add, text,x10, Количество - %Numb% 
Gui, Add, Text, x5 y+5  w190   h1    0x10
Gui, Add, text,x10 y+20, Паспорт - %Doc% 
Gui, Add, text,x10, Видео - %Video%

Gui, Show, , *****
Return


Guiclose:
gui, destroy
ExitApp

2

Re: AHK: Поиск папки

if Var not contains MatchList

3

Re: AHK: Поиск папки

ypppu Наверное, я делаю что-то не так!


#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
#SingleInstance force 

FormatTime, TimeString, , dd.MM.yyyy

Folder := % "С:\DOC\" TimeString


	 Numb := 0
Loop, %Folder%\*, 2, 1
    if A_LoopFileAttrib not contains H
        Numb ++


var := "Паспорт*"
Doc := 0
Loop, %Folder%\паспорт*.pdf, 1, 1
		Doc++

if Var not contains % A_LoopFileName
none := % A_LoopFileDir


Video := 0
Loop, %Folder%\*.wmv, 1, 1
		Video++



Gui, +ToolWindow +AlwaysOnTop 
Gui, Font, s15 italic 

Gui, Add, text,x10, Количество - %Numb% 
Gui, Add, Text, x5 y+5  w190   h1    0x10
Gui, Add, text,x10 y+20, Паспорт - %Doc% (%none%)
Gui, Add, text,x10, Видео - %Video%

Gui, Show, , *****
Return


Guiclose:
gui, destroy
ExitApp

4

Re: AHK: Поиск папки

var := "wmsv"
IF var not in паспорт,wmv
MsgBox, Нет совпадений

5 (изменено: inseption86, 2019-07-09 19:26:00)

Re: AHK: Поиск папки

ypppu
А как узнать имя каталога. в котором нет совпадений?

Folder := % "С:\DOC\" TimeString - это каталог с множеством папок (имя папки - ФИО), в каждой папке есть несколько файлов - паспорт.., договор...., видео..., ....,  Как узнать количеством файлов с именем "Паспорт..." сделал., а как узнать имя папки, где нет файла с именем "паспорт"

6

Re: AHK: Поиск папки

Перебирать всё содержимое папки. Если среди всего содержимого ни разу не было файла "паспорт", значит такая папка найдена.

7

Re: AHK: Поиск папки

ypppu

Если папка одна то работает, но как избавиться от лишних Msgbox? Если папок несколько (где-то есть *паспорт*, где то нету), то

IfnotExist, % Folder "\*паспорт*"

показывает папку, где есть файл с "*паспорт*

	   
loop,%Folder%\*.pdf, 0, 1
	{
		IfnotExist, % Folder "\*паспорт*"
		{
	none_folder%A_Index% := A_LoopFileDir
}
IF % none_folder%A_Index% != ""
{
MsgBox % none_folder%A_Index%
}
}

  ExitApp

8

Re: AHK: Поиск папки

inseption86, значит где-то неправильно или не полностью задано условие.

9 (изменено: inseption86, 2019-07-14 20:10:38)

Re: AHK: Поиск папки

Сделал так:



	loop,%Folder%\*.pdf, 0, 1
	{
	   if !Instr(A_LoopFileName, "Паспорт") 
	
	FileList .=  A_LoopFileDir "`n"
}
Sort, FileList, U


	loop,%Folder%\*.pdf, 0, 1
	{
	   if Instr(A_LoopFileName, "Паспорт")
	
	FileList1 .=  A_LoopFileDir "`n"
}
Sort, FileList1, U


Text := "`n" FileList "`n" FileList1 "`n" 
StringReplace, Text, Text, `n, `n`n, all
Loop, parse, Text, `n, `r 

    (A_LoopField != "" && !InStr(Text, "`n" A_LoopField "`n", 1, , 2) && (Only .= A_LoopField "`n")) 

msgbox % Only