automation-lib 6.5.44 → 6.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/commit.bat CHANGED
@@ -10,6 +10,8 @@ git commit -m "%commit_message%"
10
10
  timeout /t 2 /nobreak >nul
11
11
 
12
12
  :: Push changes to the 'main' branch of the 'cp' remote
13
+ git pull hs toan
14
+ timeout /t 2 /nobreak >nul
13
15
  git pull hs main
14
16
 
15
17
  :: Read the current version from package.json
package/dist/index.d.mts CHANGED
@@ -14860,6 +14860,7 @@ interface DataUpsertImageVideoVoiceCanvaInstagramDto {
14860
14860
  textPage7: string;
14861
14861
  linkAddHistory: string;
14862
14862
  nicheLinkCategory: string;
14863
+ folderTemplate: 'vertical' | 'horizontal' | 'square' | 'square_product';
14863
14864
  styleName: string;
14864
14865
  effectAudioPage1: string;
14865
14866
  effectAudioPage234567: string;
@@ -15373,6 +15374,8 @@ interface DataUpsertAvatarCoverCanvaInstagramDto {
15373
15374
  statusGenerateImage: ETaskStatus;
15374
15375
  timeStatusGenerateImageChange: Date;
15375
15376
  retryCountGenerateImage: number;
15377
+ folderTemplate: 'avatar_social' | 'cover_social';
15378
+ styleName: string;
15376
15379
  currentStepGenerateCanvaAvatar: number;
15377
15380
  totalStepGenerateCanvaAvatar: number;
15378
15381
  statusGenerateCanvaAvatar: ETaskStatus;
@@ -15450,6 +15453,8 @@ interface ITaskAIAvatarCoverInstagram extends IBaseModel, ITrackingModel {
15450
15453
  statusGenerateImage: ETaskStatus;
15451
15454
  timeStatusGenerateImageChange: Date;
15452
15455
  retryCountGenerateImage: number;
15456
+ folderTemplate: 'avatar_social' | 'cover_social';
15457
+ styleName: string;
15453
15458
  currentStepGenerateCanvaAvatar: number;
15454
15459
  totalStepGenerateCanvaAvatar: number;
15455
15460
  statusGenerateCanvaAvatar: ETaskStatus;
@@ -15577,6 +15582,7 @@ interface ITaskAIImageVideoVoiceCanvaInstagram extends IBaseModel, ITrackingMode
15577
15582
  textPage7: string;
15578
15583
  linkAddHistory: string;
15579
15584
  nicheLinkCategory: string;
15585
+ folderTemplate: 'vertical' | 'horizontal' | 'square' | 'square_product';
15580
15586
  styleName: string;
15581
15587
  effectAudioPage1: string;
15582
15588
  effectAudioPage234567: string;
@@ -16610,6 +16616,12 @@ declare enum ETaskWorkflowNodeCategory {
16610
16616
  LogicAndSupport = "LogicAndSupport"
16611
16617
  }
16612
16618
 
16619
+ declare enum ETaskWorkflowRunStatus {
16620
+ Success = "Success",
16621
+ Fail = "Fail",
16622
+ Running = "Running"
16623
+ }
16624
+
16613
16625
  declare enum ETaskWorkflowNodeInstagram {
16614
16626
  TaskSocialAutoPosts = "TaskSocialAutoPosts",// Kích hoạt khi bài post mới hoàn thành (In: 0, Out: 1)
16615
16627
  EgoCheck = "EgoCheck",// Kiểm tra trang cá nhân, story, grid
@@ -16656,11 +16668,61 @@ declare enum ETaskWorkflowNodeInstagram {
16656
16668
  SettingConfigHumanDelay = "SettingConfigHumanDelay"
16657
16669
  }
16658
16670
 
16671
+ declare enum ETaskWorkflowNodeThreads {
16672
+ EgoCheck = "EgoCheck",// Tự xem bài viết đang lên (Ego Check)
16673
+ CrossPromoStory = "CrossPromoStory",// Share bài lên Story (Cross-Promo)
16674
+ DoomedScrollingReels = "DoomedScrollingReels",// Lướt Reels vô định (Doomed Scrolling)
16675
+ FomoCheck = "FomoCheck",// Check thông báo (Fomo)
16676
+ NewsFeedScroll = "NewsFeedScroll",// Lướt Newsfeed (Dạo)
16677
+ ViewFriendStory = "ViewFriendStory",// Xem Story bạn bè
16678
+ RandomLike = "RandomLike",// Like bài viết (Random)
16679
+ ContextComment = "ContextComment",// Comment AI (Context)
16680
+ HumanPause = "HumanPause",// Nghỉ ngơi
16681
+ Delay = "Delay",// Delay thời gian
16682
+ Condition = "Condition",// Điều kiện
16683
+ RandomChance = "RandomChance",// Điều kiện rẽ nhánh theo tỉ lệ phần trăm
16684
+ Note = "Note",// Ghi chú
16685
+ End = "End"
16686
+ }
16687
+
16688
+ interface CreateTaskWorkflowDto {
16689
+ }
16690
+ interface UpdateTaskWorkflowDto {
16691
+ }
16692
+ interface FindTaskWorkflowDto extends IFindBaseDto {
16693
+ typeSocial: ETypeSocial;
16694
+ name: string;
16695
+ description: string;
16696
+ status: ETaskWorkflowStatus;
16697
+ group: string;
16698
+ numberNode: number;
16699
+ numberStep: number;
16700
+ numberAccount: number;
16701
+ logs: {
16702
+ success: number;
16703
+ fail: number;
16704
+ running: number;
16705
+ };
16706
+ }
16707
+ interface FilterTaskWorkflowDto {
16708
+ }
16709
+
16710
+ interface CreateTaskWorkflowGroupDto {
16711
+ name: string;
16712
+ description: string;
16713
+ }
16714
+ interface UpdateTaskWorkflowGroupDto {
16715
+ name?: string;
16716
+ description?: string;
16717
+ }
16718
+ interface FindTaskWorkflowGroupDto extends IFindBaseDto {
16719
+ name: string;
16720
+ description: string;
16721
+ }
16722
+
16659
16723
  interface ITaskWorkflowGroup extends IBaseModel, ITrackingModel {
16660
16724
  name: string;
16661
16725
  description: string;
16662
- color: string;
16663
- typeSocial: ETypeSocial;
16664
16726
  }
16665
16727
 
16666
16728
  interface ITaskWorkflow extends IBaseModel, ITrackingModel {
@@ -16692,23 +16754,6 @@ interface ITaskWorkflowNodeInstagram extends IBaseModel, ITrackingModel {
16692
16754
  attributes: ITaskWorkflowNodeInstagramAttribute;
16693
16755
  }
16694
16756
 
16695
- declare enum ETaskWorkflowNodeThreads {
16696
- EgoCheck = "EgoCheck",// Tự xem bài viết đang lên (Ego Check)
16697
- CrossPromoStory = "CrossPromoStory",// Share bài lên Story (Cross-Promo)
16698
- DoomedScrollingReels = "DoomedScrollingReels",// Lướt Reels vô định (Doomed Scrolling)
16699
- FomoCheck = "FomoCheck",// Check thông báo (Fomo)
16700
- NewsFeedScroll = "NewsFeedScroll",// Lướt Newsfeed (Dạo)
16701
- ViewFriendStory = "ViewFriendStory",// Xem Story bạn bè
16702
- RandomLike = "RandomLike",// Like bài viết (Random)
16703
- ContextComment = "ContextComment",// Comment AI (Context)
16704
- HumanPause = "HumanPause",// Nghỉ ngơi
16705
- Delay = "Delay",// Delay thời gian
16706
- Condition = "Condition",// Điều kiện
16707
- RandomChance = "RandomChance",// Điều kiện rẽ nhánh theo tỉ lệ phần trăm
16708
- Note = "Note",// Ghi chú
16709
- End = "End"
16710
- }
16711
-
16712
16757
  interface ITaskWorkflowNodeThreadsAttribute {
16713
16758
  }
16714
16759
 
@@ -16722,64 +16767,12 @@ interface ITaskWorkflowNodeThreads extends IBaseModel, ITrackingModel {
16722
16767
  attributes: ITaskWorkflowNodeThreadsAttribute;
16723
16768
  }
16724
16769
 
16725
- declare enum ETaskWorkflowRunStatus {
16726
- Success = "Success",
16727
- Fail = "Fail",
16728
- Running = "Running"
16729
- }
16730
-
16731
16770
  interface ITaskWorkflowLog extends IBaseModel, ITrackingModel {
16732
16771
  typeSocial: ETypeSocial;
16733
16772
  accountSocialId: string;
16734
16773
  statusRun: ETaskWorkflowRunStatus;
16735
16774
  }
16736
16775
 
16737
- interface CreateTaskWorkflowDto {
16738
- group: string;
16739
- name: string;
16740
- description: string;
16741
- status: ETaskWorkflowStatus;
16742
- typeSocial: ETypeSocial;
16743
- }
16744
- interface UpdateTaskWorkflowDto extends CreateTaskWorkflowDto {
16745
- }
16746
- interface FindTaskWorkflowDto extends IFindBaseDto {
16747
- typeSocial: ETypeSocial;
16748
- name: string;
16749
- description: string;
16750
- status: ETaskWorkflowStatus;
16751
- group: string | ITaskWorkflowGroup;
16752
- numberNode: number;
16753
- numberStep: number;
16754
- numberAccount: number;
16755
- logs: {
16756
- success: number;
16757
- fail: number;
16758
- running: number;
16759
- };
16760
- }
16761
- interface FilterTaskWorkflowDto {
16762
- }
16763
-
16764
- interface CreateTaskWorkflowGroupDto {
16765
- name: string;
16766
- description: string;
16767
- color: string;
16768
- typeSocial: ETypeSocial;
16769
- }
16770
- interface UpdateTaskWorkflowGroupDto {
16771
- name?: string;
16772
- description?: string;
16773
- color: string;
16774
- typeSocial: ETypeSocial;
16775
- }
16776
- interface FindTaskWorkflowGroupDto extends IFindBaseDto {
16777
- name: string;
16778
- description: string;
16779
- color: string;
16780
- typeSocial: ETypeSocial;
16781
- }
16782
-
16783
16776
  interface IVoiceLanguage extends IBaseModel, ITrackingModel {
16784
16777
  vl_name: string;
16785
16778
  vl_key: ETypeVoiceLanguage;
package/dist/index.d.ts CHANGED
@@ -14860,6 +14860,7 @@ interface DataUpsertImageVideoVoiceCanvaInstagramDto {
14860
14860
  textPage7: string;
14861
14861
  linkAddHistory: string;
14862
14862
  nicheLinkCategory: string;
14863
+ folderTemplate: 'vertical' | 'horizontal' | 'square' | 'square_product';
14863
14864
  styleName: string;
14864
14865
  effectAudioPage1: string;
14865
14866
  effectAudioPage234567: string;
@@ -15373,6 +15374,8 @@ interface DataUpsertAvatarCoverCanvaInstagramDto {
15373
15374
  statusGenerateImage: ETaskStatus;
15374
15375
  timeStatusGenerateImageChange: Date;
15375
15376
  retryCountGenerateImage: number;
15377
+ folderTemplate: 'avatar_social' | 'cover_social';
15378
+ styleName: string;
15376
15379
  currentStepGenerateCanvaAvatar: number;
15377
15380
  totalStepGenerateCanvaAvatar: number;
15378
15381
  statusGenerateCanvaAvatar: ETaskStatus;
@@ -15450,6 +15453,8 @@ interface ITaskAIAvatarCoverInstagram extends IBaseModel, ITrackingModel {
15450
15453
  statusGenerateImage: ETaskStatus;
15451
15454
  timeStatusGenerateImageChange: Date;
15452
15455
  retryCountGenerateImage: number;
15456
+ folderTemplate: 'avatar_social' | 'cover_social';
15457
+ styleName: string;
15453
15458
  currentStepGenerateCanvaAvatar: number;
15454
15459
  totalStepGenerateCanvaAvatar: number;
15455
15460
  statusGenerateCanvaAvatar: ETaskStatus;
@@ -15577,6 +15582,7 @@ interface ITaskAIImageVideoVoiceCanvaInstagram extends IBaseModel, ITrackingMode
15577
15582
  textPage7: string;
15578
15583
  linkAddHistory: string;
15579
15584
  nicheLinkCategory: string;
15585
+ folderTemplate: 'vertical' | 'horizontal' | 'square' | 'square_product';
15580
15586
  styleName: string;
15581
15587
  effectAudioPage1: string;
15582
15588
  effectAudioPage234567: string;
@@ -16610,6 +16616,12 @@ declare enum ETaskWorkflowNodeCategory {
16610
16616
  LogicAndSupport = "LogicAndSupport"
16611
16617
  }
16612
16618
 
16619
+ declare enum ETaskWorkflowRunStatus {
16620
+ Success = "Success",
16621
+ Fail = "Fail",
16622
+ Running = "Running"
16623
+ }
16624
+
16613
16625
  declare enum ETaskWorkflowNodeInstagram {
16614
16626
  TaskSocialAutoPosts = "TaskSocialAutoPosts",// Kích hoạt khi bài post mới hoàn thành (In: 0, Out: 1)
16615
16627
  EgoCheck = "EgoCheck",// Kiểm tra trang cá nhân, story, grid
@@ -16656,11 +16668,61 @@ declare enum ETaskWorkflowNodeInstagram {
16656
16668
  SettingConfigHumanDelay = "SettingConfigHumanDelay"
16657
16669
  }
16658
16670
 
16671
+ declare enum ETaskWorkflowNodeThreads {
16672
+ EgoCheck = "EgoCheck",// Tự xem bài viết đang lên (Ego Check)
16673
+ CrossPromoStory = "CrossPromoStory",// Share bài lên Story (Cross-Promo)
16674
+ DoomedScrollingReels = "DoomedScrollingReels",// Lướt Reels vô định (Doomed Scrolling)
16675
+ FomoCheck = "FomoCheck",// Check thông báo (Fomo)
16676
+ NewsFeedScroll = "NewsFeedScroll",// Lướt Newsfeed (Dạo)
16677
+ ViewFriendStory = "ViewFriendStory",// Xem Story bạn bè
16678
+ RandomLike = "RandomLike",// Like bài viết (Random)
16679
+ ContextComment = "ContextComment",// Comment AI (Context)
16680
+ HumanPause = "HumanPause",// Nghỉ ngơi
16681
+ Delay = "Delay",// Delay thời gian
16682
+ Condition = "Condition",// Điều kiện
16683
+ RandomChance = "RandomChance",// Điều kiện rẽ nhánh theo tỉ lệ phần trăm
16684
+ Note = "Note",// Ghi chú
16685
+ End = "End"
16686
+ }
16687
+
16688
+ interface CreateTaskWorkflowDto {
16689
+ }
16690
+ interface UpdateTaskWorkflowDto {
16691
+ }
16692
+ interface FindTaskWorkflowDto extends IFindBaseDto {
16693
+ typeSocial: ETypeSocial;
16694
+ name: string;
16695
+ description: string;
16696
+ status: ETaskWorkflowStatus;
16697
+ group: string;
16698
+ numberNode: number;
16699
+ numberStep: number;
16700
+ numberAccount: number;
16701
+ logs: {
16702
+ success: number;
16703
+ fail: number;
16704
+ running: number;
16705
+ };
16706
+ }
16707
+ interface FilterTaskWorkflowDto {
16708
+ }
16709
+
16710
+ interface CreateTaskWorkflowGroupDto {
16711
+ name: string;
16712
+ description: string;
16713
+ }
16714
+ interface UpdateTaskWorkflowGroupDto {
16715
+ name?: string;
16716
+ description?: string;
16717
+ }
16718
+ interface FindTaskWorkflowGroupDto extends IFindBaseDto {
16719
+ name: string;
16720
+ description: string;
16721
+ }
16722
+
16659
16723
  interface ITaskWorkflowGroup extends IBaseModel, ITrackingModel {
16660
16724
  name: string;
16661
16725
  description: string;
16662
- color: string;
16663
- typeSocial: ETypeSocial;
16664
16726
  }
16665
16727
 
16666
16728
  interface ITaskWorkflow extends IBaseModel, ITrackingModel {
@@ -16692,23 +16754,6 @@ interface ITaskWorkflowNodeInstagram extends IBaseModel, ITrackingModel {
16692
16754
  attributes: ITaskWorkflowNodeInstagramAttribute;
16693
16755
  }
16694
16756
 
16695
- declare enum ETaskWorkflowNodeThreads {
16696
- EgoCheck = "EgoCheck",// Tự xem bài viết đang lên (Ego Check)
16697
- CrossPromoStory = "CrossPromoStory",// Share bài lên Story (Cross-Promo)
16698
- DoomedScrollingReels = "DoomedScrollingReels",// Lướt Reels vô định (Doomed Scrolling)
16699
- FomoCheck = "FomoCheck",// Check thông báo (Fomo)
16700
- NewsFeedScroll = "NewsFeedScroll",// Lướt Newsfeed (Dạo)
16701
- ViewFriendStory = "ViewFriendStory",// Xem Story bạn bè
16702
- RandomLike = "RandomLike",// Like bài viết (Random)
16703
- ContextComment = "ContextComment",// Comment AI (Context)
16704
- HumanPause = "HumanPause",// Nghỉ ngơi
16705
- Delay = "Delay",// Delay thời gian
16706
- Condition = "Condition",// Điều kiện
16707
- RandomChance = "RandomChance",// Điều kiện rẽ nhánh theo tỉ lệ phần trăm
16708
- Note = "Note",// Ghi chú
16709
- End = "End"
16710
- }
16711
-
16712
16757
  interface ITaskWorkflowNodeThreadsAttribute {
16713
16758
  }
16714
16759
 
@@ -16722,64 +16767,12 @@ interface ITaskWorkflowNodeThreads extends IBaseModel, ITrackingModel {
16722
16767
  attributes: ITaskWorkflowNodeThreadsAttribute;
16723
16768
  }
16724
16769
 
16725
- declare enum ETaskWorkflowRunStatus {
16726
- Success = "Success",
16727
- Fail = "Fail",
16728
- Running = "Running"
16729
- }
16730
-
16731
16770
  interface ITaskWorkflowLog extends IBaseModel, ITrackingModel {
16732
16771
  typeSocial: ETypeSocial;
16733
16772
  accountSocialId: string;
16734
16773
  statusRun: ETaskWorkflowRunStatus;
16735
16774
  }
16736
16775
 
16737
- interface CreateTaskWorkflowDto {
16738
- group: string;
16739
- name: string;
16740
- description: string;
16741
- status: ETaskWorkflowStatus;
16742
- typeSocial: ETypeSocial;
16743
- }
16744
- interface UpdateTaskWorkflowDto extends CreateTaskWorkflowDto {
16745
- }
16746
- interface FindTaskWorkflowDto extends IFindBaseDto {
16747
- typeSocial: ETypeSocial;
16748
- name: string;
16749
- description: string;
16750
- status: ETaskWorkflowStatus;
16751
- group: string | ITaskWorkflowGroup;
16752
- numberNode: number;
16753
- numberStep: number;
16754
- numberAccount: number;
16755
- logs: {
16756
- success: number;
16757
- fail: number;
16758
- running: number;
16759
- };
16760
- }
16761
- interface FilterTaskWorkflowDto {
16762
- }
16763
-
16764
- interface CreateTaskWorkflowGroupDto {
16765
- name: string;
16766
- description: string;
16767
- color: string;
16768
- typeSocial: ETypeSocial;
16769
- }
16770
- interface UpdateTaskWorkflowGroupDto {
16771
- name?: string;
16772
- description?: string;
16773
- color: string;
16774
- typeSocial: ETypeSocial;
16775
- }
16776
- interface FindTaskWorkflowGroupDto extends IFindBaseDto {
16777
- name: string;
16778
- description: string;
16779
- color: string;
16780
- typeSocial: ETypeSocial;
16781
- }
16782
-
16783
16776
  interface IVoiceLanguage extends IBaseModel, ITrackingModel {
16784
16777
  vl_name: string;
16785
16778
  vl_key: ETypeVoiceLanguage;
package/docs.txt CHANGED
@@ -1,3 +1,3 @@
1
-
2
- ############ Cấu hình npm ############
1
+
2
+ ############ Cấu hình npm ############
3
3
  npm config set //registry.npmjs.org/:_authToken {token}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "automation-lib",
3
- "version": "6.5.44",
3
+ "version": "6.6.1",
4
4
  "description": "Common features and type of applications auto",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -1,81 +1,81 @@
1
- n@echo off
2
- setlocal enabledelayedexpansion
3
- chcp 65001 >nul
4
- echo ====================================
5
- echo FILE SEARCH AND LIST UTILITY
6
- echo ====================================
7
- echo.
8
-
9
- set /p folder_path="Enter folder path: "
10
-
11
- if not exist "%folder_path%" (
12
- echo.
13
- echo [ERROR] Folder does not exist!
14
- pause
15
- exit /b
16
- )
17
-
18
- echo.
19
- set /p file_pattern="Enter file name pattern (press Enter to list all files): "
20
-
21
- if "%file_pattern%"=="" (
22
- set search_mode=ALL_FILES
23
- set output_file=all_files_%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt
24
- ) else (
25
- set search_mode=PATTERN_SEARCH
26
- set output_file=search_%file_pattern:_=_%_%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt
27
- )
28
-
29
- set output_file=%output_file: =0%
30
-
31
- echo.
32
- echo Searching files...
33
- if "%search_mode%"=="PATTERN_SEARCH" (
34
- echo Pattern: *%file_pattern%*
35
- ) else (
36
- echo Listing all files...
37
- )
38
- echo.
39
-
40
- echo ============ SEARCH RESULTS ============ > "%output_file%"
41
- echo Folder: %folder_path% >> "%output_file%"
42
- echo Time: %date% %time% >> "%output_file%"
43
- if "%search_mode%"=="PATTERN_SEARCH" (
44
- echo Search Pattern: *%file_pattern%* >> "%output_file%"
45
- ) else (
46
- echo Search Mode: All Files >> "%output_file%"
47
- )
48
- echo ====================================== >> "%output_file%"
49
- echo. >> "%output_file%"
50
-
51
- set count=0
52
-
53
- if "%search_mode%"=="ALL_FILES" (
54
- for /r "%folder_path%" %%f in (*) do (
55
- echo %%f
56
- echo %%f >> "%output_file%"
57
- set /a count+=1
58
- )
59
- ) else (
60
- for /r "%folder_path%" %%f in (*) do (
61
- echo %%~nxf | findstr /i "%file_pattern%" >nul
62
- if !errorlevel! equ 0 (
63
- echo %%f
64
- echo %%f >> "%output_file%"
65
- set /a count+=1
66
- )
67
- )
68
- )
69
-
70
- echo.
71
- echo ====================================
72
- if "%search_mode%"=="PATTERN_SEARCH" (
73
- echo Total matching files: %count%
74
- ) else (
75
- echo Total files: %count%
76
- )
77
- echo Result saved to: %output_file%
78
- echo ====================================
79
- echo.
80
-
81
- pause
1
+ n@echo off
2
+ setlocal enabledelayedexpansion
3
+ chcp 65001 >nul
4
+ echo ====================================
5
+ echo FILE SEARCH AND LIST UTILITY
6
+ echo ====================================
7
+ echo.
8
+
9
+ set /p folder_path="Enter folder path: "
10
+
11
+ if not exist "%folder_path%" (
12
+ echo.
13
+ echo [ERROR] Folder does not exist!
14
+ pause
15
+ exit /b
16
+ )
17
+
18
+ echo.
19
+ set /p file_pattern="Enter file name pattern (press Enter to list all files): "
20
+
21
+ if "%file_pattern%"=="" (
22
+ set search_mode=ALL_FILES
23
+ set output_file=all_files_%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt
24
+ ) else (
25
+ set search_mode=PATTERN_SEARCH
26
+ set output_file=search_%file_pattern:_=_%_%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt
27
+ )
28
+
29
+ set output_file=%output_file: =0%
30
+
31
+ echo.
32
+ echo Searching files...
33
+ if "%search_mode%"=="PATTERN_SEARCH" (
34
+ echo Pattern: *%file_pattern%*
35
+ ) else (
36
+ echo Listing all files...
37
+ )
38
+ echo.
39
+
40
+ echo ============ SEARCH RESULTS ============ > "%output_file%"
41
+ echo Folder: %folder_path% >> "%output_file%"
42
+ echo Time: %date% %time% >> "%output_file%"
43
+ if "%search_mode%"=="PATTERN_SEARCH" (
44
+ echo Search Pattern: *%file_pattern%* >> "%output_file%"
45
+ ) else (
46
+ echo Search Mode: All Files >> "%output_file%"
47
+ )
48
+ echo ====================================== >> "%output_file%"
49
+ echo. >> "%output_file%"
50
+
51
+ set count=0
52
+
53
+ if "%search_mode%"=="ALL_FILES" (
54
+ for /r "%folder_path%" %%f in (*) do (
55
+ echo %%f
56
+ echo %%f >> "%output_file%"
57
+ set /a count+=1
58
+ )
59
+ ) else (
60
+ for /r "%folder_path%" %%f in (*) do (
61
+ echo %%~nxf | findstr /i "%file_pattern%" >nul
62
+ if !errorlevel! equ 0 (
63
+ echo %%f
64
+ echo %%f >> "%output_file%"
65
+ set /a count+=1
66
+ )
67
+ )
68
+ )
69
+
70
+ echo.
71
+ echo ====================================
72
+ if "%search_mode%"=="PATTERN_SEARCH" (
73
+ echo Total matching files: %count%
74
+ ) else (
75
+ echo Total files: %count%
76
+ )
77
+ echo Result saved to: %output_file%
78
+ echo ====================================
79
+ echo.
80
+
81
+ pause