소프트웨어 오토핫키 파일 정렬 관련 질문하나 드립니다.
2022.11.23 15:33
안녕하세요.
오토핫키에서 막히는 부분이 있어 이렇게 또 질문 드리게되었습니다.ㅠㅠ
예시 d:\테스트 폴더내에 아래와 같은 파일이 있습니다.
애국가 1.txt
애국가 2.txt
애국가 3.txt
애국가 4.txt
애국가 5.txt
애국가 6.txt
애국가 7.txt
애국가 8.txt
애국가 9.txt
애국가 10.txt
애국가 11.txt
예를들어 위 처럼 11개의 파일이 있다는 가정하에
Loop files, d:\테스트\*.txt
{
msgbox, %A_LoopFileLongPath%
}
위의 코드를 실행하면
애국가 10.txt
애국가 11.txt
애국가 1.txt
이런식으로 결과값이 나오더라구요 찾아보니 Sort로 정렬이 가능하다하여 옵션에 있는 숫자로 정렬인 n을 사용해보고 다 해봐도 역순 정렬 말고는 위와 동일하게 값이 나타납니다
물론 파일을 애국가 01, 02와 같이 변경 후 위 코드를 돌리면 순서대로 잘 나타나긴 하지만 너무 번거로운 작업일것 같습니다.
혹시 파일이름 변경 없이 결과값이 예시와 같이 순차적으로 나오게 할 수 있는 방법이 있을까요?
답변 주시면 감사하겠습니다.ㅠㅠ
댓글 [12]
-
내꼬 2022.11.23 15:49 -
천공의아키라 2022.11.23 16:16
답변은 감사드리지만 윈도우 탐색기에서는 정상적으로 보여집니다~
감사합니다.
-
줄리아니 2022.11.23 15:55
var := "애국가 1.txt,애국가 11.txt,애국가 2.txt,애국가 3.txt"
Sort var,P5 N D,
MsgBox % var
옵션에서 P를 사용하면 됩니다 다음은 P 에 대한 설명입니다
Pn: Sorts items based on character position n (do not use hexadecimal for n). If this option is not present, n defaults to 1, which is the position of the first character. The sort compares each string to the others starting at its nth character. If n is greater than the length of any string, that string is considered to be blank for the purpose of the sort. When used with option N (numeric sort), the string's character position is used, which is not necessarily the same as the number's digit position.
-
천공의아키라 2022.11.23 16:19
와~ 감사합니다~
해결 되었습니다~ 다시한번 감사드립니다.
-
메리아 2022.11.23 16:37
음... 저 옵션을 보면
P는 position이라는 의미로 보이는데, 당장은 되는거처럼 보여도 오류가 생길 수 있을듯 하네요
단순히 몇번째 위치를 보고 정렬한다는건데 다양한 길이의 숫자가 있다면 좀 무리일듯...
-
천공의아키라 2022.11.23 16:57
네 말씀하신대로 하나는 되던데 다른건 안되네요 ㅠㅠ
감사합니다.
-
천공의아키라 2022.11.23 16:59
바로 하나 해봤을땐 되더니 다른건 안되네요 ㅠㅠ 감사합니다.
-
줄리아니 2022.11.23 17:19
p5 옵션이 5번째 문자 위치를 기준으로 정렬을 시키기는 거라서요 다른 파일 할때는 pN 숫자를 변경해야 합니다
-
메리아 2022.11.23 16:30
기본적으로 일반 프로그래밍의 기본정렬과 탐색기 정렬은 다릅니다.
어떤 정렬이라도 기본정렬은 한글자 단위로 분석하기 때문에
1,10,2,3,4 ... 이런 결과가 나옵니다.
탐색기는 숫자를 통째로 인식해서
1,2,3,4...10... 이런 결과를 내는데, 이걸 "자연정렬 - natural sort"라고 부릅니다.
어떤 언어건 해당 언어의 natural sort를 검색하면 함수나 API가 나옵니다.
오토핫키의 경우는 아래의 API 함수를 사용하라고 하네요.
StrCmpLogicalW
참고 :
https://www.autohotkey.com/boards/viewtopic.php?t=74157
https://www.autohotkey.com/boards/viewtopic.php?p=273947#p273947
다른 언어라도 위의 API 함수를 쓰거나
따로 natural sort를 구현한 함수가 있다면 그걸 쓰면 됩니다.
참고로 탐색기의 경우, 숫자말고도 정렬규칙이 기본정렬과는 몇가지 다릅니다.
또한 자연정렬도 조금씩 차이가 있을 수 있으므로,
탐색기와 무조건 일치한다는 보장이 없기에, 순서가 탐색기와 무조건 일치한다는 가정으로 코딩하면 안됩니다.^^
-
천공의아키라 2022.11.23 16:58
답변 감사드립니다~ 참고해보겠습니다
-
지후빠 2022.11.23 17:24
문자 위치와 상관 없이 사용할 수 있는 방법이 있네요. https://www.autohotkey.com/boards/viewtopic.php?f=5&t=63893
Loop files, *.txt
FileList .= A_LoopFileLongPath . "`n"
Sort, FileList, F SortStrCmpLogical
msgbox, %FileList%
return
SortStrCmpLogical(vTextA, vTextB, vOffset)
{
local
vRet := DllCall("shlwapi\StrCmpLogicalW", "WStr",vTextA, "WStr",vTextB)
return vRet ? vRet : -vOffset
}
커피 한잔 뽑고서 올렸더니 몇 건의 댓글이 더 추가 되었네요. ^^
-
천공의아키라 2022.11.23 17:30
와 답변 감사합니다~
일단 몇개 해봤는데 잘 동작합니다~
감사합니다
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
5854 | 소프트웨어| 아이콘 모양 [2] | asklee | 260 | 04-21 |
5853 | 윈 도 우| 3.3버전에서 이상하게 불안해 졌습니다 [1] | ㉯ⓢⓔⓜⓞ | 260 | 04-01 |
5852 | 윈 도 우| 크롬 즐겨찾기? [1] | 바람낙엽 | 260 | 02-14 |
5851 | 기 타| 현재 사용중인 네트워크에 보조DNS만 추가, 변경할수 있을... [4] | 리드니아 | 260 | 12-27 |
5850 | 윈 도 우| 윈10에서 advanced system care 프로그램 쓰시는분~~ [3] | 브록레스너 | 260 | 09-22 |
5849 | 소프트웨어| AOMEI backupper 백업 실행 오류 [2] | 자연을보며 | 260 | 12-11 |
5848 | 하드웨어| 노트북 램 질문입니다...ㅠ [3] | cosmosa | 260 | 09-11 |
5847 | 소프트웨어| 크롬 브라우저 새탭에서 열리는문제 환경설정 방법 문의 [4] | 맹물 | 260 | 07-20 |
5846 | 윈 도 우| 문의)) 토랜트 사용 시~ 블루스크린이 뜨는 이유??? [3] | chobits | 260 | 07-20 |
5845 | 소프트웨어| bootmgr에서 GRUB4DOS로 연결 할수 있나요? [3] | 엉클퍼커 | 260 | 06-04 |
5844 | 윈 도 우| Cent Browser 한글화하는 방법 [2] | downmania | 260 | 07-26 |
5843 | 윈 도 우| W7상태에서 업데이트가 완벽하게 안되는 이유 | 장고다발총 | 260 | 03-30 |
5842 | 하드웨어| 저 Raid에 대해서 궁금한게 있는데요 [4] | 범땡이 | 260 | 04-18 |
5841 | 하드웨어| adobe 프로그램 하드웨어 궁금합니다 [3] | 뚜릅 | 260 | 02-01 |
5840 | 윈 도 우| 인터넷 익스플로러 [1] | kuky1006 | 260 | 04-13 |
5839 | 하드웨어| ryzen에서 vmware 사용시 에러 [1] | 도셀12 | 260 | 10-20 |
5838 | 윈 도 우| RS3 설치후 사용자 계정 컨트롤 변경 관련 문의 드립니다. | 어부바 | 260 | 10-08 |
5837 | 윈 도 우| 윈도우 10 익스플로러 엣지에서 동영상이 안되요(재질문) [1] | 우주인 | 260 | 05-06 |
5836 | 기 타| 크롬 윈포접속 오류 [3] | 서기다 | 260 | 08-29 |
5835 | 소프트웨어| 바이두 e-mail 등록 ??? | 바람낙엽 | 260 | 02-07 |
root blog :: 윈도우10 파일 탐색기 숫자 정렬 방식 변경하기 (tistory.com)
위 링크가 답일겁니다.