ÁöÁ¤µÈ ÆÄÀÏÀ̳ª Æú´õ¸¦ , ÇÑ ¹ø¿¡ Çϳª¾¿ ¿¶÷ÇÕ´Ï´Ù.
Loop, Files, FilePattern [, Mode] ; v1.1.21+ (±ÇÀå)
Loop, FilePattern [, IncludeFolders?, Recurse?]
¹®ÀÚ ±×´ë·Î Files
(´ë¼Ò¹®ÀÚ-±¸º°). º¯¼ö³ª Ç¥Çö½Ä ºÒ°¡´É.
ÆÄÀÏÀ̳ª Æú´õÀÇ À̸§, ¶Ç´Â C:\Temp\*.tmp
¿Í °°Àº ¿ÍÀϵåÄ«µå ÆÐÅÏ. FilePatternÀº Àý´ë °æ·Î°¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀ¸¸é %A_WorkingDir%¿¡ ÀÖ´Ù°í °£Áֵ˴ϴÙ.
º°Ç¥¿Í ¹°À½Ç¥ Ç¥½Ä ¸ðµÎ ¿ÍÀϵåÄ«µå·Î Áö¿øµË´Ï´Ù. ÆÐÅÏÀÌ ÆÄÀÏÀÇ ±ä/º¸Åë À̸§¿¡ ¶Ç´Â ±×ÀÇ 8.3 ªÀº À̸§¿¡ ³ªÅ¸³ª¸é ÀÏÄ¡°¡ ÀϾ´Ï´Ù.
ÀÌ ¸Å°³º¯¼ö°¡ ´ÜÀÏ ÆÄÀÏÀ̳ª Æú´õÀÌ°í (Áï, ¿ÍÀϵåÄ«µå°¡ ¾Æ´Ï°í) Recurse°¡ 1·Î ¼³Á¤µÇ¾ú°Å³ª Mode¿¡ R
ÀÌ Æ÷ÇԵǾî ÀÖÀ¸¸é, ºÎÇÕÇÏ´Â °ÍÀÌ ¿©·µÀÏ ¼ö ÀÖ½À´Ï´Ù. ÁöÁ¤µÈ ÆÄÀÏ À̸§ÀÌ °Ë»öµÇ´Â ¿©·¯ Æú´õ¿¡ ³ªÅ¸³ª±â ¶§¹®ÀÔ´Ï´Ù.
´ÙÀ½ ±âÈ£µé·Î ±¸¼ºµË´Ï´Ù:
D
: µð·ºÅ丮 Æ÷ÇÔ (Æú´õ).
F
: ÆÄÀÏ Æ÷ÇÔ. F¿Í D¸¦ ¸ðµÎ »ý·«Çϸé ÆÄÀϵµ Æ÷ÇԵ˴ϴÙ.
R
: ¼ºêµð·ºÅ丮 ¾ÈÀ¸·Î Àç±ÍÇÕ´Ï´Ù (¼ºêÆú´õ). RÀÌ »ý·«µÇ¸é, ¼ºêµð·ºÅ丮ÀÇ ÆÄÀÏ°ú Æú´õ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.
´ÙÀ½ ¼ýÀÚ Áß Çϳª, ¶Ç´Â ºñ¾î ÀÖÀ¸¸é ±âº»°ª »ç¿ë:
0 (±âº»°ª) Æú´õ´Â ¿¶÷ÇÏÁö ¾Ê½À´Ï´Ù (ÆÄÀϸ¸ ¿¶÷).
1 ¿ÍÀϵåÄ«µå ÆÐÅÏ¿¡ ºÎÇÕÇÏ´Â ¸ðµç ÆÄÀÏ°ú Æú´õ¸¦ ¿¶÷ÇÕ´Ï´Ù.
2 Æú´õ¸¸ ¿¶÷ÇÕ´Ï´Ù (ÆÄÀÏ ¿¶÷ ¾ÈÇÔ).
´ÙÀ½ º¯¼öµéÀº ÆÄÀÏ-ȸµ¹À̶ó¸é ¸ðµÎ Á¸ÀçÇÕ´Ï´Ù. ¾ÈÂÊ ÆÄÀÏ-ȸµ¹ÀÌ°¡ ¹Ù±ù ÆÄÀÏ-ȸµ¹ÀÌ¿¡ µÑ·¯ ½Î¿© ÀÖ´Ù¸é, ¾ÈÂÊ ÆÄÀÏ È¸µ¹ÀÌ°¡ ¿ì¼±±ÇÀÌ ÀÖ½À´Ï´Ù:
A_LoopFileName | ÇöÀç ¿¶÷µÈ ÆÄÀÏÀ̳ª Æú´õÀÇ À̸§ (°æ·Î ¾øÀ½). |
A_LoopFileExt | ÆÄÀÏ È®ÀåÀÚ (¿¹, TXT, DOC, ¶Ç´Â EXE). ¸¶Ä§Ç¥ (.)´Â Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù. |
A_LoopFileFullPath | ÇöÀç ¿¶÷µÈ ÆÄÀÏ/Æú´õÀÇ Àüü °æ·Î¿Í À̸§. FilePattern¿¡ Àý´ë °æ·Î°¡ ¾Æ´Ï¶ó »ó´ë °æ·Î°¡ ´ã°Ü ÀÖ´Ù¸é, ¿©±â¿¡µµ »ó´ë °æ·Î°¡ ´ã±é´Ï´Ù. °Ô´Ù°¡, FilePatternÀÌ ÂªÀº (8.3) Æú´õ À̸§ÀÌ¸é ¿ª½Ã ªÀº À̸§ÀÌ ´ã±é´Ï´Ù (±ä ¹öÀüÀ» ¾òÀ¸·Á¸é ´ÙÀ½ Ç׸ñÀ» ÂüÁ¶ÇϽʽÿÀ). |
A_LoopFileLongPath | ´ÙÀ½°ú °°Àº Á¡¿¡¼ A_LoopFileFullPath¿Í ´Ù¸¨´Ï´Ù:
|
A_LoopFileShortPath | ÇöÀç ¿¶÷µÈ ÆÄÀÏ/Æú´õÀÇ 8.3 ªÀº °æ·Î¿Í À̸§. ¿¹¸¦ µé¾î: ´ÜÀÏ ÆÄÀÏÀ̳ª Æú´õ¿¡ ´ëÇÏ¿© ¿Ïº®ÇÑ 8.3 °æ·Î¿Í À̸§À» ¿¶÷ÇÏ·Á¸é, FilePattern¿¡ ±×ÀÇ À̸§À» ´ÙÀ½ ¿¹Á¦¿Í °°ÀÌ ÁöÁ¤ÇϽʽÿÀ: Loop, C:\My Documents\Address List.txt ShortPathName = %A_LoopFileShortPath% ÁÖÀÇ: ÀÌ º¯¼ö´Â ÆÄÀÏÀÌ ÂªÀº À̸§ÀÌ ¾ø´Ù¸é ºñ¾î ÀÖ½À´Ï´Ù. ÀÌ·± ÀÏÀº ·¹Áö½ºÆ®¸®¿¡ NtfsDisable8dot3NameCreation°¡ ¼³Á¤µÇ¾î ÀÖ´Â ½Ã½ºÅÛ¿¡¼ ÀϾ ¼ö ÀÖ½À´Ï´Ù. ¶Ç FilePattern¿¡ »ó´ë °æ·Î°¡ µé¾î ÀÖ°í ȸµ¹ÀÌÀÇ ¸öü°¡ SetWorkingDir¸¦ »ç¿ëÇÏ´Â °æ¿ì¿¡µµ ÀϾ ¼ö ÀÖ½À´Ï´Ù. ÇöÀç ȸµ¹ÀÌ ÀÚü¿¡ ¿µÇâÀÌ ÀÖ´Â ÇöÀç ÀÛ¾÷ µð·ºÅ丮·ÎºÎÅÍ ´Ù¸¥ µð·ºÅ丮·Î ÀüȯÇÏ¸é ¾È µË´Ï´Ù. |
A_LoopFileShortName | 8.3 ªÀº À̸§, ¶Ç´Â ÆÄÀÏÀÇ ¶Ç´Ù¸¥ À̸§. ÆÄÀÏ¿¡ ªÀº À̸§ÀÌ ¾ø´Ù¸é (±ä À̸§ÀÌ 8.3º¸´Ù ´õ ª°Å³ª ¶Ç´Â ¾î¼¸é NTFS ÆÄÀÏ ½Ã½ºÅÛ¿¡¼ ªÀº-À̸§ »ý¼ºÀÌ ²¨Á® Àֱ⠶§¹®¿¡), A_LoopFileNameÀÌ ´ë½Å ¿¶÷µË´Ï´Ù. |
A_LoopFileDir | A_LoopFileNameÀÌ °ÅÁÖÇÏ´Â µð·ºÅ丮ÀÇ °æ·Î. FilePattern¿¡ Àý´ë °æ·Î°¡ ¾Æ´Ï¶ó »ó´ë °æ·Î°¡ µé¾î ÀÖ´Ù¸é, ¿©±âÀÇ °æ·Îµµ »ó´ë °æ·Î°¡ µË´Ï´Ù. ·çÆ® µð·ºÅ丮´Â µÚ¿¡ ¿ª»ç¼±À» Æ÷ÇÔÇÏÁö ¾Ê½À´Ï´Ù. ¿¹¸¦ µé¾î: C: |
A_LoopFileTimeModified | ÆÄÀÏÀÌ ¸¶Áö¸·À¸·Î ¼öÁ¤µÈ ½Ã°¢. Çü½ÄÀº YYYYMMDDHH24MISS. |
A_LoopFileTimeCreated | ÆÄÀÏÀÌ »ý¼ºµÈ ½Ã°¢. Çü½ÄÀº YYYYMMDDHH24MISS. |
A_LoopFileTimeAccessed | ÆÄÀÏ¿¡ ¸¶Áö¸·À¸·Î Á¢±ÙÇÑ ½Ã°¢. Çü½ÄÀº YYYYMMDDHH24MISS. |
A_LoopFileAttrib | ÇöÀç ¿¶÷µÈ ÆÄÀÏÀÇ ¼Ó¼º. |
A_LoopFileSize | ÇöÀç ¿¶÷µÈ ÆÄÀÏÀÇ ¹ÙÀÌÆ® ´ÜÀ§ Å©±â. 4 ±â°¡ ¹ÙÀÌÆ®º¸´Ù Å« ÆÄÀϵµ Áö¿øÇÕ´Ï´Ù. |
A_LoopFileSizeKB | ÇöÀç ¿¶÷µÈ ÆÄÀÏÀÇ Kbytes ´ÜÀ§ Å©±â, °¡Àå °¡±î¿î Á¤¼ö·Î ¹Ý³»¸²µË´Ï´Ù. |
A_LoopFileSizeMB | ÇöÀç ¿¶÷µÈ ÆÄÀÏÀÇ Mbytes ´ÜÀ§ Å©±â, °¡Àå °¡±î¿î Á¤¼ö·Î ¹Ý³»¸² µË´Ï´Ù. |
ÆÄÀÏ È¸µ¹ÀÌ´Â ÆÄÀÏ/Æú´õÀÇ Áý´ÜÀ» ÇÑ ¹ø¿¡ Çϳª¾¿ ó¸®ÇÏ°í ½ÍÀ» ¶§ À¯¿ëÇÕ´Ï´Ù.
¼ûÀº ÆÄÀÏÀ» Æ÷ÇÔÇÏ¿©, ºÎÇÕÇÏ´Â ¸ðµç ÆÄÀÏÀÌ ¿¶÷µË´Ï´Ù. ´ëÁ¶ÀûÀ¸·Î, DIR¿Í °°Àº OS Ư¡Àº ±âº»À¸·Î ¼ûÀº ÆÄÀÏÀ» Á¦¿ÜÇÕ´Ï´Ù. ¼ûÀº, ½Ã½ºÅÛ, ¶Ç´Â Àбâ Àü¿ë ÆÄÀÏÀ» ó¸®ÇÏÁö ¾Êµµ·Ï ÇÏ·Á¸é, ȸµ¹ÀÌ ¾È¿¡ ´ÙÀ½°ú °°Àº Äڵ带 »ç¿ëÇϽʽÿÀ:
if A_LoopFileAttrib contains H,R,S ; ¼Ó¼ºÀÌ H (Hidden), R (Read-only), ¶Ç´Â S (System)ÀÎ ÆÄÀÏÀº °Ç³Ê ¶Ý´Ï´Ù. ÁÖÀÇ: "H,R,S"¿¡ ½ºÆäÀ̽º°¡ ¾ø½À´Ï´Ù. continue ; ÀÌ ÆÄÀÏÀ» °Ç³Ê ¶Ù°í ´ÙÀ½ ÆÄÀÏ·Î °©´Ï´Ù.
ÆÄÀÏÀ» Àç±ÍÀûÀ¸·Î °Ë»öÇÏ´Â µ¿¾È Àý´ë °æ·Î ´ë½Å¿¡ »ó´ë °æ·Î¸¦ ¾òÀ¸·Á¸é, SetWorkingDirÀ» »ç¿ëÇÏ¿© ȸµ¹À̸¦ ½ÃÀÛÇϱâ Àü¿¡ ¸ÕÀú ±âº» Æú´õ·Î º¯°æÇÑ ´ÙÀ½, Loop¿¡¼´Â ±× °æ·Î¸¦ »ý·«ÇϽʽÿÀ (¿¹, Loop, *.*, 0, 1
). ±×·¯¸é A_LoopFileFullPath¿¡ ±× ±âº» Æú´õ¿¡ »ó´ëÀûÀÎ ÆÄÀÏÀÇ °æ·Î°¡ ´ã±é´Ï´Ù.
ÆÄÀÏ-ȸµ¹ÀÌ´Â ÀÚ½ÅÀÇ ¹üÀ§ ¾È¿¡¼ ÆÄÀÏÀ̳ª Æú´õ¸¦ ¸¸µé°Å³ª À̸§À» ¹Ù²Ü °æ¿ì ½º½º·Î¸¦ È¥¶õ¿¡ ºüÆ®¸± ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, FileMove³ª ±âŸ ¼ö´ÜÀ¸·Î ÆÄÀÏ À̸§À» º¯°æÇÑ´Ù¸é, ±×·± ÆÄÀÏÀº °¢°¢ µÎ ¹ø ¹ß°ßÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù: ÇÑ ¹øÀº ±×ÀÇ ¿¹Àü À̸§À¸·Î ±×¸®°í ´Ù½Ã »õ À̸§À¸·Î ¹ß°ßµË´Ï´Ù. À̸¦ ¿ìȸÇÏ·Á¸é, ÆÄÀÏ ¸®½ºÆ®°¡ »ý¼ºµÈ ÈÄ¿¡¸¸ ÆÄÀÏÀÇ À̸§À» ¹Ù²Ù½Ê½Ã¿À. ¿¹¸¦ µé¾î:
FileList = Loop, Files, *.jpg FileList = %FileList%%A_LoopFileName%`n Loop, Parse, FileList, `n FileMove, %A_LoopField%, renamed_%A_LoopField%
NTFS ÆÄÀÏ ½Ã½ºÅÛÀÇ ÆÄÀÏÀº ¾Æ¸¶µµ ¾ðÁ¦³ª ¾ËÆĺª ¼ø¼·Î ¿¶÷µÉ °ÍÀÔ´Ï´Ù. ´Ù¸¥ ÆÄÀÏ ½Ã½ºÅÛ¿¡¼´Â Ưº°ÇÑ ¼ø»ç°¡ ¾øÀÌ ¿¶÷µË´Ï´Ù. ƯÁ¤ ¼ø¼·Î ¿¶÷ÇÏ·Á¸é, ¾Æ·¡ ¼½¼ÇÀÇ ¿¡Á¦¿¡¼ º¸¿©ÁÖ´Â °Íó·³ Sort ¸í·É¾î¸¦ »ç¿ëÇϽʽÿÀ.
ÆÄÀÏÀ̳ª Æú´õ À̸§ÀÌ 259 ¹®ÀÚ°¡ ³Ñ¾î°¡¸é ¸¶Ä¡ Á¸ÀçÇÏÁö ¾Ê´Â °Íó·³ °Ç³Ê ¶Ý´Ï´Ù. ±×·± ÆÄÀÏÀº °ÅÀÇ ¾ø½À´Ï´Ù. º¸Åë ¿î¿µ üÁ¦¿¡¼ ±×·± ÆÄÀÏÀº »ý¼ºÀ» Çã¿ëÇÏÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù.
Blocks, Break, Continue, ±×¸®°í A_Index º¯¼ö (¸ðµç À¯ÇüÀÇ È¸µ¹ÀÌ¿¡ Á¸ÀçÇÔ)¿¡ °üÇÑ Á¤º¸´Â Loop¸¦ ÂüÁ¶ÇϽʽÿÀ.
Loop, Break, Continue, Blocks, SplitPath, FileSetAttrib, FileSetTime
; ¿¹Á¦ #1: Loop Files, %A_ProgramFiles%\*.txt, R ; ¼ºêÆú´õ ¾ÈÀ¸·Î Àç±ÍÇÕ´Ï´Ù. { MsgBox, 4, , Filename = %A_LoopFileFullPath%`n`nContinue? IfMsgBox, No break }
; ¿¹Á¦ #2: Æú´õÀÇ Å©±â¸¦ °è»êÇÕ´Ï´Ù. ±×ÀÇ ¼ºêÆú´õ ¾È¿¡ ÀÖ´Â ÆÄÀϵéÀ» ¸ðµÎ Æ÷ÇÔÇÕ´Ï´Ù: SetBatchLines, -1 ; ÃÖ´ë ¼Óµµ·Î ¿¬»êÀ» ½ÇÇàÇÕ´Ï´Ù. FolderSizeKB = 0 FileSelectFolder, WhichFolder ; »ç¿ëÀÚ¿¡°Ô Æú´õ¸¦ °í¸£µµ·Ï ¿ä±¸ÇÕ´Ï´Ù. Loop, Files, %WhichFolder%\*.*, R FolderSizeKB += %A_LoopFileSizeKB% MsgBox Size of %WhichFolder% is %FolderSizeKB% KB.
; ¿¹Á¦ #3: À̸§À¸·Î Á¤·ÄµÈ ÆÄÀÏ À̸§µéÀ» ¿¶÷ÇÕ´Ï´Ù. (´ÙÀ½ ¿¹Á¦´Â ³¯Â¥·Î Á¤·Ä): FileList = ; ºó °ªÀ¸·Î ÃʱâÈÇÕ´Ï´Ù. Loop, C:\*.* FileList = %FileList%%A_LoopFileName%`n Sort, FileList, R ; R ¿É¼ÇÀº ¿ª¼øÀ¸·Î Á¤·ÄÇÕ´Ï´Ù. ´Ù¸¥ ¿É¼ÇÀº Sort¸¦ ÂüÁ¶ÇϽʽÿÀ. Loop, parse, FileList, `n { if A_LoopField = ; ¸®½ºÆ® ¸Ç ³¡¿¡ ÀÖ´Â ºó Ç׸ñÀº ¹«½ÃÇÕ´Ï´Ù. continue MsgBox, 4,, File number %A_Index% is %A_LoopField%. Continue? IfMsgBox, No break }
; ¿¹Á¦ #4: ¼öÁ¤ ³¯Â¥·Î Á¤·ÄµÈ ÆÄÀÏ À̸§µéÀ» ¿¶÷ÇÕ´Ï´Ù: FileList = Loop, Files, %A_MyDocuments%\Photos\*.*, FD ; ÆÄÀÏ°ú µð·ºÅ丮¸¦ Æ÷ÇÔÇÕ´Ï´Ù FileList = %FileList%%A_LoopFileTimeModified%`t%A_LoopFileName%`n Sort, FileList ; Sort by date. Loop, Parse, FileList, `n { if A_LoopField = ; ¸®½ºÆ® ¸Ç ³¡ÀÇ ¸¶Áö¸· ¶óÀÎÇǵå (ºó Ç׸ñ)Àº ¹«½ÃÇÕ´Ï´Ù. continue StringSplit, FileItem, A_LoopField, %A_Tab% ; ÅÇ ¹®ÀÚ¿¡¼ µÎ ºÎºÐÀ¸·Î ³ª´¯´Ï´Ù. MsgBox, 4,, The next file (modified at %FileItem1%) is:`n%FileItem2%`n`nContinue? IfMsgBox, No break }
; ¿¹Á¦ #5: ¸ñÇ¥ ÆÄÀÏ°ú ºñ±³Çؼ ´õ »õ·Î¿î ¼Ò½º ÆÄÀϸ¸ º¹»çÇÕ´Ï´Ù: CopyIfNewer: ; È£ÃâÀÚ´Â º¯¼ö CopySourcePattern°ú CopyDest¸¦ ¿ì¸® ´ë½Å ¼³Á¤ÇØ ÁÝ´Ï´Ù. Loop, Files, %CopySourcePattern% { copy_it = n IfNotExist, %CopyDest%\%A_LoopFileName% ; ¸ñÇ¥ ÆÄÀÏÀÌ ¾ÆÁ÷ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é Ç×»ó º¹»çÇÕ´Ï´Ù. copy_it = y else { FileGetTime, time, %CopyDest%\%A_LoopFileName% EnvSub, time, %A_LoopFileTimeModified%, seconds ; ¸ñÇ¥ ÆÄÀÏÀÇ ½Ã°£À¸·ÎºÎÅÍ ¼Ò½º ÆÄÀÏÀÇ ½Ã°£À» »®´Ï´Ù. if time < 0 ; ¼Ò½º ÆÄÀÏÀº ¸ñÇ¥ ÆÄÀϺ¸´Ù ´õ »õ·Ó½À´Ï´Ù. copy_it = y } if copy_it = y { FileCopy, %A_LoopFileFullPath%, %CopyDest%\%A_LoopFileName%, 1 ; overwrite=yes¸¦ »ç¿ëÇÏ¿© º¹»çÇÕ´Ï´Ù if ErrorLevel MsgBox, Could not copy "%A_LoopFileFullPath%" to "%CopyDest%\%A_LoopFileName%". } } Return
; ¿¹Á¦ #6: ¸í·ÉÁÙ ¸Å°³º¯¼ö¸¦ ÅëÇÏ¿© °Ç³×¾îÁø ÆÄÀÏ À̸§À» ±ä À̸§, ¿ÏÀüÇÑ À̸§À¸·Î º¯È¯ÇÕ´Ï´Ù. ; ±×¸®°í ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀúÀåµÈ ´ë¼Ò¹®ÀÚ¿¡ ¸Â°Ô À̸§À» ´ë¹®ÀÚ³ª ¼Ò¹®ÀÚ·Î ±³Á¤ÇÕ´Ï´Ù. Loop %0% ; ½ºÅ©¸³Æ®¿¡ ¶³±¸¾îÁø °¢ ÆÄÀÏ¿¡ ´ëÇÏ¿© (¶Ç´Â ¸Å°³º¯¼ö·Î °Ç³×¾îÁø). { GivenPath := %A_Index% ; ´ÙÀ½ ¸í·ÉÁÙ ¸Å°³º¯¼ö¸¦ ¿¶÷ÇÕ´Ï´Ù. Loop %GivenPath%, 1 LongPath = %A_LoopFileLongPath% MsgBox The case-corrected long path name of file`n%GivenPath%`nis:`n%LongPath% }