בקשה | הוצאת כל הקבצים מכל תתי התיקיות לתיקייה אחת
-
יש לי תיקייה שבתוכה יש לי עשרות תיקיות שבכל אחת יש כמה קבצים, כולם הם פחות או יותר אותו דבר והייתי שמח אם היה לי את כל הקבצים בתיקייה אחת ולא בעוד תיקייה שבעוד תיקייה וכו'...
אשמח לקבל תוכנה שמוציאה את כל הקבצים מתחת לתיקייה ___ לתיקייה מוגדרת-או לתיקייה הראשית.
או אולי @מתכנת-חובב או @NH-LOCAL יעשו לנו איזה סקריפט או משהו כזה...תודה מראש!
-
@צדיק-תמים כתב בבקשה | הוצאת כל הקבצים מכל תתי התיקיות לתיקייה אחת:
@שמואל-ש הלכת רחוק...
תעשה חיפוש שמתאים לכל הקבצים בסייר של וינדוס, תלחץ 'בחר הכל', ותגזור לתוך תקיה חדשה...@שמואל-ש אני אסביר את מה שהוא כתב יותר פשוט, נניח שהכל זה קבצי MP3, אז תכתוב בחיפש בתיקייה הראשית MP3, זה יעלה לך את כל הקבצים, תעשה בחר הכל, גזור, והדבק בתיקייה אחת.
-
@משה-מזרחי כתב בבקשה | הוצאת כל הקבצים מכל תתי התיקיות לתיקייה אחת:
@שמואל-ש
בהמשך למה שנאמר
אם לא כל הקבצים מאותו סוג קובץ
תתקין את Everything , בהתקנה תבחר "הוסף למקש ימין"
ואז מקש ימני על התיקיה >Everything
הוא מציג את כל הקבצים שבכל התיקיותאין צורך.
אחרי שעושים כל חיפוש שהוא, אפשר לבטל, ונשארים עם כל כל הקבצים שבתיקיה. -
@משה-מזרחי כתב בבקשה | הוצאת כל הקבצים מכל תתי התיקיות לתיקייה אחת:
@שמואל-ש
בהמשך למה שנאמר
אם לא כל הקבצים מאותו סוג קובץ
תתקין את Everything , בהתקנה תבחר "הוסף למקש ימין"
ואז מקש ימני על התיקיה >Everything
הוא מציג את כל הקבצים שבכל התיקיותאין צורך. מחפשים בשורת החיפוש "*".
-
@שמואל-ש כמו שכתבו למעלה, אין בזה כל כך עניין אבל מכיוון שכבר הרבה מאוד זמן לא כתבתי סקריפט החלטתי לכתוב עכשיו אחד כזה
מעביר קבצים מתתי-תיקיות.bat@echo off setlocal color 0a :init echo. echo. echo. echo. set/p "a=enter a new location (a dot for the current diractory) or type exit if you want to : " if "%a%"=="" goto init if "%a%"=="exit" goto end if "%a%"=="EXIT" goto end if "%a%"=="." set a=%cd% if not exist "%a%" cls & echo the folder does not exist! & goto init cls echo moving your files to %a% set count=0 for /r %%i in (*) do ( if "%%~nxi"=="%~nx0" ( echo hello>nul ) else ( move "%%i" %a% && set /a count+=1 ) ) echo. echo. echo. echo %count% files moved successfully. pause>nul :end echo bye bye exit
-
@שמואל-ש כתבתי סקריפט קטן ב - python שמעתיק לתיקיה חדשה לפי בחירה.
צריך להעביר כארגומנט ראשון את נתיב התיקייה שממנו ברצונך להעתיק, ארגומנט שני יעד אליו יועתק. (אם היעד לא קיים נוצר תיקיה בשם שנתת)
בנוסף הסקריפט בודק אם קיימים קבצים עם אותו שם והם זהים (בודק את ה -hash) מועתק רק אחד.
אם הם לא זהים, שניהם מועתקים כשלאחד מהם מתוסף מספר.הקוד:
import os import sys import hashlib if len(sys.argv) != 3: print("\033[91m2 arguments are required\033[0m") sys.exit(1) src_folder = sys.argv[1] dst_folder = sys.argv[2] if not os.path.exists(src_folder): print("\033[91mThe source folder {} does not exist\033[0m".format(src_folder)) sys.exit(1) if not os.path.exists(dst_folder): os.makedirs(dst_folder) for root, dirs, files in os.walk(src_folder): for file in files: src_file = os.path.join(root, file) dst_file = os.path.join(dst_folder, file) i = 1 while os.path.exists(dst_file): hasher = hashlib.sha256() with open(src_file, 'rb') as first_file: hasher.update(first_file.read()) src_hash = hasher.hexdigest() hasher = hashlib.sha256() with open(dst_file, 'rb') as same_file: hasher.update(same_file.read()) dst_hash = hasher.hexdigest() if src_hash != dst_hash: filename, file_extension = os.path.splitext(dst_file) dst_file = "{} ({}){}".format(filename, i, file_extension) i += 1 else: os.remove(dst_file) with open(src_file, 'rb') as file_src: with open(dst_file, 'wb') as file_dst: file_dst.write(file_src.read()) print("All the files from the folder {} have been copied to folder {}".format(src_folder, dst_folder))
דוגמת להרצה:
"python script_name.py "first path" "second path"
כאשר "first path" הוא התיקייה ממנו אתה רוצה להעתיק ו - "second path" הוא התיקייה שאליו אתה רוצה להעתיק.
-