Hallo erstmal
Ich bin vor 2 tagen zufällig auf Autohotkey aufmerksam geworden habe nach einem Weg gesucht ein Fenster oben zulassen wahrend ich ein anderes öffne es hat mir dabei geholfen obwohl ich 0 programmier Erfahrung habe konnte man schnell zu Ergebnissen kommen.
Jetzt habe ich mich gefragt da ich immer viel Musik auf dem Desktop liegen habe wie ich ein Programm machen könnte das alle Audio datein sammelt und in einen Ordner packt.
Ich würde mich über Hilfe freuen danke im Voraus.
Desktop aufräumen
Moderator: jNizM
Re: Desktop aufräumen
Hallo,
So z.B.:
So z.B.:
Code: Select all
MusikOrdner = C:\MusikOrdner
If !FileExist(MusikOrdner)
FileCreateDir, %MusikOrdner%
Return
F1::
FileMove, %A_Desktop%\*.mp3, %MusikOrdner%
Return
Re: Desktop aufräumen
Danke für deine Hilfe momentan packt das Programm ja nur MP3 datein die lose rumliegen in einen Ordner könnte man es auch machen das alle anderen Ordner die Audio datein enthalten in einen Ordner gepackt werden?
Re: Desktop aufräumen
danke Rohwedder,
script unten benutzt im Moment für Test Filecopy , wenn getestet denn mit Filemove ersetzen
erstellt noch ein text-file , da sieht man wo die files lagen falls aus Versehen verschoben wurde
Files mit gleichen Namen erhalten eine fortlaufende Nummer zum Namen
welche Files identisch sind kann man mit filegetsize bzw. im Explorer anschauen und anhören
vielleicht gibt es bessere Lösung damit files mit gleichem Namen nicht überschrieben werden
( hatte mehrere mp3-files mit Namen Test.mp3 welche unterschiedlich waren )
maybe confused ...
script unten benutzt im Moment für Test Filecopy , wenn getestet denn mit Filemove ersetzen
erstellt noch ein text-file , da sieht man wo die files lagen falls aus Versehen verschoben wurde
Files mit gleichen Namen erhalten eine fortlaufende Nummer zum Namen
welche Files identisch sind kann man mit filegetsize bzw. im Explorer anschauen und anhören
vielleicht gibt es bessere Lösung damit files mit gleichem Namen nicht überschrieben werden
( hatte mehrere mp3-files mit Namen Test.mp3 welche unterschiedlich waren )
maybe confused ...
Code: Select all
;-------- https://autohotkey.com/boards/viewtopic.php?f=9&t=14907&p=75798#p75798 ---
#NoEnv ;- Recommended for performance and compatibility with future AutoHotkey releases.
#Warn
SendMode Input ;- Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%
SetBatchLines, -1
Extensions := "mp3,wav,aac,m4a" ;- files with these extension to move
FD2:=""
FD2 = C:\MusikOrdner
ifnotexist,%FD2%
FileCreateDir, %FD2%
F1=%A_desktop%\My_Music_Files.txt ;- for control
ifexist,%f1%
filedelete,%f1%
e4x:=""
Loop, %a_desktop%\*.*, 0, 1 ;- recursive search in subfolders also
{
If A_LoopFileExt in %Extensions%
e4x .= A_LoopFileFullPath "`r`n" ;- write to variable
}
if e4x<>
fileappend,%e4x%,%f1% ;- for control write fullpath to file
else
{
msgbox, 262208,Music-Files ,NO Music-Files found at`n%a_desktop%
return
}
i=0
loop,parse,e4x,`n,`r ;- read variable
{
x=%a_loopfield%
if x<>
{
;msgbox, 262208,TEST_MoveMusicFiles2%FD2%,FileMove`,%x%`, %FD2% , 1 ;- for test
;FileMove,%x%,%FD2% ;- really file move
Filecopy,%x%,%FD2%
if (errorlevel=0)
{
i++
continue
}
if errorlevel ;- if file exist copy file with new name add a_index like Test_4.mp3
{
SplitPath, x, name, dir, ext, name_no_ext, drive
filegetsize,V1,%x%,
filegetsize,V2,%FD2%\%name%,
;msgbox,V1=%v1%`nV2=%v2%
if (V1=V2)
{
;msgbox, 262208,TEST, NOT Copy`n%V1%=%x%`n%V2%=%FD2%\%name%`nBecause same size
continue
}
i++
;xnew=%name_no_ext%_%a_now%_%a_index%.%ext%
xnew=%name_no_ext%_%a_index%.%ext%
;msgbox, 262208,TEST, Copy`n%V1%=%x%>>`n%V2%=%FD2%\%xnew%`nBecause NOT same size
filecopy,%x%,%FD2%\%xnew%
}
}
}
e4x=
;run,%f1% ;- open text-file with fullpath
;sleep,2000
run,%FD2% ;- open folder
sleep,2000
msgbox, 262208,TEST_FINISH,Copied ( or moved) =%i% Music-Files
return
;- break script
esc::exitapp
Re: Desktop aufräumen
Danke auch dir für deine Hilfe und Zeit
Aber leider macht dass Programm immer noch nicht ganz dass, was ich mir vorstelle, momentan erkennt es die Musik in den Ordnern und kopiert diese lose in MusikOrdner aber wollte ja, dass es die Musik verschiebt und die Musik in einen Ordner packt und wenn möglich auch, dass die Musik in den Ordnern bleibt, in denen es war, weil sonst ist, dass zu unübersichtlich wenn ich einen großen order mit all meiner Musik habe.
Aber leider macht dass Programm immer noch nicht ganz dass, was ich mir vorstelle, momentan erkennt es die Musik in den Ordnern und kopiert diese lose in MusikOrdner aber wollte ja, dass es die Musik verschiebt und die Musik in einen Ordner packt und wenn möglich auch, dass die Musik in den Ordnern bleibt, in denen es war, weil sonst ist, dass zu unübersichtlich wenn ich einen großen order mit all meiner Musik habe.
Re: Desktop aufräumen
probiere dies , und mache denn später Versuche mit Filemove statt Filecopy
Code: Select all
#NoEnv ;- Recommended for performance and compatibility with future AutoHotkey releases.
#Warn
SendMode Input ;- Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%
SetBatchLines, -1
Extensions := "mp3,wav,aac,m4a" ;- files with these extension to move
FD2:=""
FD2 = C:\MusikOrdner
ifnotexist,%FD2%
FileCreateDir, %FD2%
F1=%A_desktop%\My_Music_Files.txt ;- for control
ifexist,%f1%
filedelete,%f1%
;------------- search all musicfiles at desktop and copy to FD2 ( C:\MusikOrdner )
pathrmv=%a_desktop%
e4x:=""
Loop, %a_desktop%\*.*, 0, 1 ;- recursive search in subfolders also
{
If A_LoopFileExt in %Extensions%
e4x .= A_LoopFileFullPath "`r`n" ;- write to variable
}
if e4x<>
fileappend,%e4x%,%f1% ;- for control write fullpath to file
else
{
msgbox, 262208,Music-Files ,NO Music-Files found at`n%a_desktop%
return
}
i=0
loop,parse,e4x,`n,`r ;- read variable
{
x=%a_loopfield%
if x<>
{
SplitPath, x, name, dir, ext, name_no_ext, drive
stringreplace,dir2,dir,%pathrmv%,,
destx=%fd2%%dir2%\%name%
FolderCrea=%fd2%%dir2%
ifnotexist,%foldercrea%
filecreatedir,%foldercrea%
;msgbox, 262208,TEST_SHOWFile,%destx%
Filecopy,%x%,%destx%
if (errorlevel=0)
{
i++
continue
}
if errorlevel
{
err:=errorlevel
if (err=1)
msgbox, 262208,TEST_ERROR,File=%x%`nALREADY EXISTS`nERRORLEVEL=%err%,2
else
msgbox, 262208,TEST_ERROR,ERRORLEVEL=%err%,2
}
}
}
e4x=
;run,%f1% ;- open text-file with fullpath from copied files
;sleep,2000
run,%FD2% ;- open folder
sleep,2000
msgbox, 262208,TEST_FINISH,Copied ( or moved) =%i% Music-Files
return
;- break script
esc::exitapp
Re: Desktop aufräumen
Es Kopiert zwar jetzt alle ordner in MusikOrdner aber laesst die musik auf dem desktop liegen.
Re: Desktop aufräumen
wie oben erwähnt , sicherheitshalber FileCopy benutzt
(ersetze lediglich Filecopy mit Filemove )
Als Versuch Lösche Dateien im Ordner C:\Musikordner
falls Musikdateien auf dem Desktop vorhanden sind sollte Meldung kommen Moved %i% Music-Files
kontrolliere C:\Musikordner
beim 2.ten Versuch : No Music-Files found at %desktop%
Probleme könnten wieder kommen wenn Du auf dem Desktop ein xy.mp3 file hast welches schon im gleichnamigen Ziel-Ordner vorhanden ist
( es wird nicht überschrieben , siehe hier wieder evtl filegetsize etc im ersten script )
MOVE
ACHTUNG : Diese Beispiel MOVE MusicFiles von Desktop nach C:\MusikOrdner Subfolders inklusive
(ersetze lediglich Filecopy mit Filemove )
Als Versuch Lösche Dateien im Ordner C:\Musikordner
falls Musikdateien auf dem Desktop vorhanden sind sollte Meldung kommen Moved %i% Music-Files
kontrolliere C:\Musikordner
beim 2.ten Versuch : No Music-Files found at %desktop%
Probleme könnten wieder kommen wenn Du auf dem Desktop ein xy.mp3 file hast welches schon im gleichnamigen Ziel-Ordner vorhanden ist
( es wird nicht überschrieben , siehe hier wieder evtl filegetsize etc im ersten script )
MOVE
ACHTUNG : Diese Beispiel MOVE MusicFiles von Desktop nach C:\MusikOrdner Subfolders inklusive
Code: Select all
/*
ACHTUNG : Diese Beispiel MOVE MusicFiles von Desktop nach C:\MusikOrdner Subfolders inklusive
zum Kopieren ersetze FileMove mit FileCopy
*/
#NoEnv ;- Recommended for performance and compatibility with future AutoHotkey releases.
#Warn
#Singleinstance,force
SendMode Input ;- Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%
SetBatchLines, -1
Extensions := "mp3,wav,aac,m4a" ;- files with these extension to copy or move ( maybe add more extensions )
FD2:=""
FD2 = C:\MusikOrdner
ifnotexist,%FD2%
FileCreateDir, %FD2%
F1=%A_desktop%\My_Music_Files.txt ;- for control
ifexist,%f1%
filedelete,%f1%
;cmdx=copied
cmdx=moved
;------------- search all musicfiles at desktop and move to FD2 ( C:\MusikOrdner )
pathrmv=%a_desktop%
e4x:=""
Loop, %a_desktop%\*.*, 0, 1 ;- recursive search in subfolders also
{
If A_LoopFileExt in %Extensions%
e4x .= A_LoopFileFullPath "`r`n" ;- write to variable
}
if e4x<>
fileappend,%e4x%,%f1% ;- for control write fullpath to file
else
{
msgbox, 262208,Music-Files ,NO Music-Files found at`n%a_desktop%
return
}
i=0
loop,parse,e4x,`n,`r ;- read variable
{
x=%a_loopfield%
if x<>
{
SplitPath, x, name, dir, ext, name_no_ext, drive
stringreplace,dir2,dir,%pathrmv%,,
destx=%fd2%%dir2%\%name%
FolderCrea=%fd2%%dir2%
ifnotexist,%foldercrea%
filecreatedir,%foldercrea%
;msgbox, 262208,TEST_SHOWFile,%destx%
FileMove,%x%,%destx% ;-- <<<< MOVE ( or maybe FileCopy )
if (errorlevel=0)
{
i++
continue
}
if errorlevel
{
err:=errorlevel
if (err=1)
msgbox, 262208,TEST_ERROR,File=%x%`nALREADY EXISTS`nERRORLEVEL=%err%,2 ;- message if same filename in same dest-folder already exist
else
msgbox, 262208,TEST_ERROR,ERRORLEVEL=%err%,2 ;- other error
}
}
}
e4x=
;run,%f1% ;- open text-file with fullpath
;sleep,2000
run,%FD2% ;- open folder
sleep,2000
msgbox, 262208,TEST_FINISHED,%cmdx% =%i% Music-Files
return
;- break script
esc::exitapp
;===============================================================================
Re: Desktop aufräumen
Danke noch mal das du dir die Zeit nimmst und mir das alles erklärst
Ich habe jetzt noch mal beide Version benutzt und wenn ich FileMove verwende verschiebt es die Musik zwar auf MusikOrdner aber lässt die leeren Ordner auf dem Desktop liegen.
Ich habe jetzt noch mal beide Version benutzt und wenn ich FileMove verwende verschiebt es die Musik zwar auf MusikOrdner aber lässt die leeren Ordner auf dem Desktop liegen.
-
- Posts: 184
- Joined: 01 Dec 2015, 05:13
- Location: Germany
Re: Desktop aufräumen
Hallo Konanocg,
eine ähnliche Geschichte findest Du hier:
https://autohotkey.com/boards/viewtopic.php?f=9&t=13267
Alle Codebestandteile sind entsprechend kommentiert, für ein besseres Verständnis!
eine ähnliche Geschichte findest Du hier:
https://autohotkey.com/boards/viewtopic.php?f=9&t=13267
Alle Codebestandteile sind entsprechend kommentiert, für ein besseres Verständnis!
Greetings Best-Code-in-Use
Re: Desktop aufräumen
Danke für die Hilfe es funktioniert jetzt so, wie ich mir das vorgestellt habe
Re: Desktop aufräumen
danke , hier noch ein Beispiel ( delete empty folders at desktop )
Code: Select all
;- https://autohotkey.com/board/topic/41373-delete-empty-folders/
;- idea from user Murp-e
;- MODIFIED = 20160315
;- CREATED = 20160315
;- DESCRIPTION = delete empty folders from desktop but keep the last empty main-folder at desktop
;------------------------------------------------------------------------------------------------
#NoEnv
#singleinstance,force
#warn
SendMode Input
SetWorkingDir, %A_ScriptDir%
sourcex=%a_desktop%
F11=DeletedEmptyFolders_Log.txt
F12=DeletedEmptyFoldersError_Log.txt
StringSplit,CX,sourcex,`\
c:=(cx0+1)
e1x :=""
errx:=""
deletedFolderCount := 0
deletedErrorCount := 0
;================= BEGIN =================================
Loop, %sourcex%\*.*, 2, 1
{
counter := 0
Loop, %A_LoopFileFullPath%\*.*, 0, 1
counter++
if counter = 0
{
xxx= %A_LoopFileFullPath%
StringSplit,CY,xxx,`\
d:=(cy0+0)
if (c=d) ;- keep folder at desktop also when empty , otherwise remove this
continue
FileRemoveDir, %A_LoopFileFullPath% ;- <<<<< REMOVE empty folder
;================= END ======================================
;-- logfile & counter ---
if errorlevel <> 0
{
err := errorlevel
errx .= "error=" . err . "| " . A_LoopFileFullPath . "`r`n"
deletedErrorCount++
}
else
{
e1x .= A_LoopFileFullPath . "`r`n"
deletedFolderCount++
}
;----
}
}
;-------------------------------------------------------------
Formattime,TS,,longdate
Formattime,TT,T12,time
if e1x<>
Fileappend,Deleted empty folders from `r`n%sourcex%`r`n`;-------- saved at %TS% %TT% --------------`r`n%e1x%,%f11%
if errx<>
Fileappend,Errors while deleting from epty folders from`r`n%sourcex%`r`n`;-------- saved at %TS% %TT% --------------`r`n%errx%,%f12%
msgbox, 262208, ,%e1x%`nDeleted %deletedFolderCount% empty folders. (%deletedErrorCount% errors.)
e1x=
errx=
counter=
return
esc::exitapp
;================== END SCRIPT delete empty folders/subfolders =============================================================
Who is online
Users browsing this forum: No registered users and 38 guests