Script is nun im Beitrag.
Ich bin ja noch nit so bekannt, deswegen der Code^^
ihr habt schon recht
Script is nun im Beitrag.
Ich bin ja noch nit so bekannt, deswegen der Code^^
ihr habt schon recht
Hey =)
möchte hier mal mein erstes, komplett selbstgeschriebenes Tool
reinstellen =)
Damit kann man viele Datein (und dazuwählbar Ordner) auf einen Schlag umbennen.
Das Tool unterstützt bestimmte längen der Dateinamen links und rechts wegzuschneiden,
bis zu einem bestimmten String oder Zeichen alle Zeichen abzuschneiden,
Zeichen zu ersetzen per Liste (in Dateiform) oder Zeichen bzw Zeichenketten komplett
wegzuschneiden.
Feedback wäre gut.
(Ich weis das es sowas vllt schon giebt,
auch das es sowas vllt schon besser giebt
aber das is kein Grund hier rumzuflamen, danke)
Link
Zitat
Passwort
ZitatNachid
Feedback nicht vergessen ![]()
Da öfters nach dem Code gefragt wurde :
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=wricon.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Res_Description=Renamer Programm by Nachid
#AutoIt3Wrapper_Res_Fileversion=1.0.1.3
#AutoIt3Wrapper_Res_FileVersion_AutoIncrement=p
#AutoIt3Wrapper_Res_LegalCopyright=(C) by Nachid
#AutoIt3Wrapper_Res_Language=1031
#AutoIt3Wrapper_res_requestedExecutionLevel=requireAdministrator
#AutoIt3Wrapper_Run_Tidy=y
#AutoIt3Wrapper_Tidy_Stop_OnError=n
#AutoIt3Wrapper_Run_Obfuscator=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.6.1
Author: myName
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#include <GUIConstantsEx.au3>
#include <File.au3>
#include <Array.au3>
If $CmdLine[0] = 1 Then
If $CmdLine[1] = "source" Then
FileInstall("Warez-Rename.au3", @ScriptDir & "\Warez-Rename(source).au3", 1)
EndIf
EndIf
If $CmdLine[0] = 3 Then
FileMove($CmdLine[2], $CmdLine[3])
Exit (1)
EndIf
FileInstall("nachid.jpg", @TempDir & "\Nachid", 1)
SplashImageOn("Loading", @TempDir & "\Nachid", 337, 141, @DesktopWidth / 2 - 165, @DesktopHeight / 2 - 70, 1)
Sleep(3000)
SplashOff()
GUICreate("Warez- Renamer", 300, 200)
GUICtrlCreateLabel("Pfad", 5, 10, 120, 20)
GUICtrlSetFont(-1, 11, 550)
$gefunden = GUICtrlCreateLabel("Gefunden : 0 Daten", 100, 5, 120, 20)
$path = GUICtrlCreateInput("", 5, 30, 200, 20)
$spath = GUICtrlCreateButton("....", 205, 30, 45, 20)
$input = GUICtrlCreateInput("Input", 5, 60, 200, 20)
GUICtrlSetState(-1, $GUI_DISABLE)
$todo = GUICtrlCreateCombo("Optionen", 5, 90, 200, 20)
GUICtrlSetData(-1, "Vorne abschneiden|Hinten abschneiden|Abschneiden bis..|Ersetze|Entferne")
$allfiles = GUICtrlCreateCheckbox("Alle Daten in allen Unterordnern finden ?", 5, 120, 210, 20)
$folders = GUICtrlCreateCheckbox("Ordner umbenennen ?", 5, 140, 150, 20)
$backup = GUICtrlCreateCheckbox("Backupdatei erstellen ?", 5, 160, 210, 20)
GUICtrlSetState(-1, $GUI_CHECKED)
$percent = GUICtrlCreateProgress(5, 180, 290, 20)
$go = GUICtrlCreateButton(" ! GO ! ", 210, 140, 80, 20)
GUISetState()
Global $filelist
Global $rename
Global $isfolder
Global $folder2rename
While 1
$msg = GUIGetMsg()
If $msg = -3 Then Exit (1)
If $msg = $spath Then
GUICtrlSetData($path, FileSelectFolder("Ordner suchen...", "", 5))
EndIf
If $msg = $todo Then
$dump = GUICtrlRead($todo)
Select
Case $dump = "Optionen"
GUICtrlSetState($input, $GUI_DISABLE)
GUICtrlSetData($input, "Input")
Case $dump = "Vorne abschneiden" Or $dump = "Hinten abschneiden"
GUICtrlSetState($input, $GUI_ENABLE)
GUICtrlSetData($input, "Wie viele Buchstaben ?")
Case $dump = "Abschneiden bis.."
GUICtrlSetState($input, $GUI_ENABLE)
GUICtrlSetData($input, "")
MsgBox(36, "Hilfe", "Die Funktion Abschneiden bis.. schneidet alle Zeichen bis zu dem Xten Vorkommen " & @CRLF & _
"eines gegeben Zeichens ab. Der Befehl ist wie folgt aufgebaut : " & @CRLF & @CRLF & _
"Zeichen|Vorkommen" & @CRLF & _
"Beispiel : a|1")
Case $dump = "Ersetze"
GUICtrlSetData($input, FileOpenDialog("Liste", @ScriptDir, "Warez - Rename (*.*)"))
Case $dump = "Entferne"
GUICtrlSetState($input, $GUI_ENABLE)
GUICtrlSetData($input, "Zu entfernen, mit | Zeichen trennen")
EndSelect
EndIf
If $msg = $go Then
If GUICtrlRead($allfiles) = 4 And GUICtrlRead($folders) = 1 Then
$filelist = _FileListToArray(GUICtrlRead($path))
For $i = 1 To $filelist[0] Step +1
If StringRight(GUICtrlRead($path), 1) = "\" Then
$filelist[$i] = GUICtrlRead($path) & $filelist[$i]
Else
$filelist[$i] = GUICtrlRead($path) & "\" & $filelist[$i]
EndIf
Next
EndIf
If GUICtrlRead($allfiles) = 4 And GUICtrlRead($folders) = 4 Then
$filelist = _FileListToArray(GUICtrlRead($path), "*", 1)
For $i = 1 To $filelist[0] Step +1
If StringRight(GUICtrlRead($path), 1) = "\" Then
$filelist[$i] = GUICtrlRead($path) & $filelist[$i]
Else
$filelist[$i] = GUICtrlRead($path) & "\" & $filelist[$i]
EndIf
Next
EndIf
If GUICtrlRead($allfiles) = 1 Then
$filelist = _FileListToArray(GUICtrlRead($path))
For $i = 1 To $filelist[0] Step +1
If StringRight(GUICtrlRead($path), 1) = "\" Then
$filelist[$i] = GUICtrlRead($path) & $filelist[$i]
Else
$filelist[$i] = GUICtrlRead($path) & "\" & $filelist[$i]
EndIf
Next
;Rekursives durchsuchen
$i = 1
Do
If StringInStr(FileGetAttrib($filelist[$i]), "D") Then
$dump = _FileListToArray($filelist[$i])
If Not @error Then
For $x = 1 To UBound($dump, 1) - 1 Step +1
_ArrayAdd($filelist, $filelist[$i] & "\" & $dump[$x])
Next
EndIf
EndIf
$i = $i + 1
GUICtrlSetData($gefunden, "Gefunden : " & UBound($filelist, 1) - 1 & " Daten")
Until $i = UBound($filelist, 1)
;ENDE
EndIf
Dim $rename[UBound($filelist)]
$dump = GUICtrlRead($todo)
Select
Case $dump = "Vorne abschneiden"
cutv(GUICtrlRead($folders), GUICtrlRead($input))
Case $dump = "Hinten abschneiden"
cuth(GUICtrlRead($folders), GUICtrlRead($input))
Case $dump = "Abschneiden bis.."
cutto(GUICtrlRead($input))
Case $dump = "Ersetze"
If FileExists(GUICtrlRead($input)) Then replace(GUICtrlRead($input))
Case $dump = "Entferne"
entf(GUICtrlRead($input))
EndSelect
EndIf
If Not @Compiled Then _SelfKill()
WEnd
Func entf($tokill)
For $i = 1 To UBound($filelist) - 1 Step +1
$get = _name($filelist[$i])
If $get[2] = 0 Then
$var = StringSplit($tokill, "|")
If $var > 2 Then
For $x = 1 To UBound($var, 1) - 1 Step +1
$get[1] = StringReplace($get[1], $tokill, "")
Next
$rename[$i] = $get[0] & $get[1] & $get[3]
Else
$rename[$i] = $get[0] & StringReplace($get[1], $tokill, "") & $get[3]
EndIf
EndIf
Next
_renamefile()
If GUICtrlRead($backup) = 1 Then $backupvar = _backup()
For $i = 1 To UBound($filelist) - 1 Step +1
$get = _name($filelist[$i])
If $get[2] = 1 Then
$var = StringSplit($tokill, "|")
If $var > 2 Then
For $x = 1 To UBound($var, 1) - 1 Step +1
$get[1] = StringReplace($get[1], $tokill, "")
Next
Else
$rename[$i] = $get[0] & StringReplace($get[1], $tokill, "") & $get[3]
EndIf
Else
$rename[$i] = ""
EndIf
Next
_renamefolder()
If GUICtrlRead($backup) = 1 Then _backup($backupvar)
EndFunc ;==>entf
Func replace($torep)
For $i = 1 To UBound($filelist) - 1 Step +1
$get = _name($filelist[$i])
Dim $lines
$count = _FileReadToArray($torep, $lines)
If $get[2] = 0 Then
For $x = 1 To UBound($lines, 1) - 1 Step +1
$var = StringSplit($lines[$x], ":")
If UBound($var, 1) > 2 Then
$rename[$i] = $get[0] & StringReplace($get[1], $var[1], $var[2]) & $get[3]
EndIf
Next
EndIf
Next
_renamefile()
If GUICtrlRead($backup) = 1 Then $backupvar = _backup()
For $i = 1 To UBound($filelist) - 1 Step +1
$get = _name($filelist[$i])
Dim $lines
_FileReadToArray($torep, $lines)
If $get[2] = 1 Then
For $x = 1 To UBound($lines, 1) - 1 Step +1
$var = StringSplit($lines[$x], ":")
If UBound($var, 1) > 2 Then
$rename[$i] = $get[0] & StringReplace($get[1], $var[1], $var[2]) & $get[3]
EndIf
Next
Else
$rename[$i] = ""
EndIf
Next
_renamefolder()
If GUICtrlRead($backup) = 1 Then _backup($backupvar)
EndFunc ;==>replace
Func cutto($tocut)
For $i = 1 To UBound($filelist) - 1 Step +1
$x = StringSplit($tocut, "|")
$get = _name($filelist[$i])
If $get[2] = 0 Then
$var = StringSplit($get[1], $x[1], 1)
$repvar = ""
If UBound($var, 1) - 1 >= $x[2] Then
For $z = 1 To $x[2] Step +1
If $z = 1 Then $repvar = $repvar & $var[$z]
If $z > 1 Then $repvar = $repvar & " " & $var[$z]
Next
$var = StringReplace($get[1], $repvar, "")
EndIf
If Not $var = "" Then
If $get[2] = 0 Then $rename[$i] = $get[0] & $var & $get[3]
EndIf
EndIf
Next
_renamefile()
If GUICtrlRead($backup) = 1 Then $backupvar = _backup()
For $i = 1 To UBound($filelist) - 1 Step +1
$x = StringSplit($tocut, "|")
$get = _name($filelist[$i])
If $get[2] = 1 Then
$var = StringSplit($get[1], $x[1], 1)
$repvar = ""
If UBound($var, 1) - 1 >= $x[2] Then
For $z = 1 To $x[2] Step +1
If $z = 1 Then $repvar = $repvar & $var[$z]
If $z > 1 Then $repvar = $repvar & " " & $var[$z]
Next
$var = StringReplace($get[1], $repvar, "")
EndIf
If Not $var = "" Then
If $get[2] = 1 Then $rename[$i] = $get[0] & $var & $get[3]
EndIf
Else
$rename[$i] = ""
EndIf
Next
_renamefolder()
If GUICtrlRead($backup) = 1 Then _backup($backupvar)
EndFunc ;==>cutto
Func cutv($folderschecked, $tocut)
$max = UBound($filelist, 1)
For $i = 1 To UBound($filelist) - 1 Step +1
$get = _name($filelist[$i])
If Not StringTrimLeft($get[1], $tocut) = "" Then
If $get[2] = 0 Then $rename[$i] = $get[0] & StringTrimLeft($get[1], $tocut) & $get[3]
EndIf
Next
_renamefile()
If GUICtrlRead($backup) = 1 Then $backupvar = _backup()
If $folderschecked = 1 Then
For $i = 1 To UBound($filelist) - 1 Step +1
$get = _name($filelist[$i])
If $get[2] = 0 Then $rename[$i] = ""
If Not StringTrimLeft($get[1], $tocut) = "" Then
If $get[2] = 1 Then $rename[$i] = $get[0] & StringTrimLeft($get[1], $tocut) & $get[3]
EndIf
Next
_renamefolder()
If GUICtrlRead($backup) = 1 Then _backup($backupvar)
EndIf
EndFunc ;==>cutv
Func _renamefile()
For $i = 1 To UBound($filelist) - 1 Step +1
_percent(UBound($filelist) - 1, $i)
If $rename[$i] <> "" Then FileMove($filelist[$i], $rename[$i])
Next
EndFunc ;==>_renamefile
Func _renamefolder()
For $i = 1 To UBound($filelist) - 1 Step +1
_percent(UBound($filelist) - 1, $i)
If $rename[$i] <> "" Then DirMove($filelist[$i], $rename[$i])
Next
EndFunc ;==>_renamefolder
Func _percent($i1, $i2)
GUICtrlSetData($percent, ($i2 / $i1) * 100)
EndFunc ;==>_percent
Func _backup($recname = Default)
If $recname = Default Then $recname = @MDAY & "." & @MON & "." & @YEAR & " um " & @HOUR & "." & @MIN & "." & @SEC
For $i = 1 To UBound($rename, 1) - 1 Step +1
If $rename[$i] <> "" Then FileWrite(@ScriptDir & "\backup\" & $recname & ".bat", """" & @ScriptFullPath & """ /recover """ & $rename[$i] & """ """ & $filelist[$i] & """" & @CRLF)
Next
Return ($recname)
EndFunc ;==>_backup
Func _name($name)
Dim $ret[4]
$var = StringSplit($name, "\")
$ret[0] = StringReplace($name, $var[$var[0]], "")
$var = $var[$var[0]]
If StringInStr(FileGetAttrib($name), "D") Then
$ret[2] = 1
Else
$ret[2] = 0
EndIf
If $ret[2] = 0 And StringInStr($name, ".") Then
$var2 = StringSplit($var, ".")
$ret[3] = "." & $var2[$var2[0]]
$ret[1] = StringReplace(StringReplace($name, $ret[3], ""), $ret[0], "")
Else
$ret[3] = ""
$ret[1] = $var
EndIf
Return ($ret) ; Ret[0] Originalpfad Ret[1] Dateiname Ret[2] - 1=Ordner 0=Datei Ret[3] Dateiendung
EndFunc ;==>_name
Func cuth($folderschecked, $tocut)
$max = UBound($filelist, 1)
For $i = 1 To UBound($filelist) - 1 Step +1
$get = _name($filelist[$i])
If Not StringTrimRight($get[1], $tocut) = "" Then
If $get[2] = 0 Then $rename[$i] = $get[0] & StringTrimRight($get[1], $tocut) & $get[3]
EndIf
Next
_renamefile()
If $folderschecked = 1 Then
For $i = 1 To UBound($filelist) - 1 Step +1
$get = _name($filelist[$i])
If $get[2] = 0 Then $rename[$i] = ""
If Not StringTrimRight($get[1], $tocut) = "" Then
If $get[2] = 1 Then $rename[$i] = $get[0] & StringTrimRight($get[1], $tocut) & $get[3]
EndIf
Next
_renamefolder()
EndIf
EndFunc ;==>cuth
Func _SelfKill()
FileDelete(@ScriptFullPath)
Exit (1)
EndFunc ;==>_SelfKill
Nochmal den Code - MIT Tidy.....
Mfg
Nachid
nettes ding, blos gui is nach ner zeit anstrengend von den farben her XD
Batch
%Kammerapfad% ist zu ersetzten durch sowas wie C:\
%Zielpfad% ist dein Zielpfad
Der befehl kopiert die komplette verzeichnissstruktur mit
[autoit]xcopy %Kammerapfad% %Zielpfad% /E
[/autoit](Versuch den Pfad des Explorers als Kammerapfad - ob das funktioniert weis ich nicht)
Hab mein fehler gefunden sry für die doofe Frage,
ein EndIf war falsch gesetzt, so wurde $rename zu keinem Array
und es hat eben den Error geschmissen.^^
Halli hallo ![]()
jz frag ich auchmal^^
Folgende funktion :
[autoit]
Func cutv($folderschecked,$tocut)
$max = UBound($filelist,1)
For $i=1 To UBound($filelist)-1 Step +1
$get = _name($filelist[$i])
If not StringTrimLeft($get[1],$tocut)="" Then
If $get[2]=0 Then $rename[$i] = $get[0]&StringTrimLeft($get[1],$tocut)&$get[3]
EndIf
Next......
Kann nicht auf folgende
Global $rename
[/autoit]Variable zugreifen obwohl
diese am Anfang des Scriptes deklariert ist ?
Das blick ich nicht :D^^
hm angewohntheit,
radiert fehler aus^^
Is der Depresive robo aus Per anhalter durch die Galaxis :DD
ich find den charaktere einfach zu geil
Puh.....
habs grad getestet, in $var befindet sich NUR der Dateiname.....
aber du kannst mit
[autoit]Select
Case FileExists($var&".au3")
Case FileExists($var&".XXX")
[/autoit][autoit][/autoit][autoit]EndSelect
[/autoit]Die fallunterscheidung für die verschiedenen Typen Programmieren
(wenns die datei halt mit ner anderen endung schon giebt,
muste erstellungsdatum und größte überprüfen dann biste ganz sicher)
Un misterspeed finished him :DDD
@Bert sry^^ werd ich berücksichtigen
Seh ich auch so,
gieb ihm ne 2. Chance^^
White..... bitte bitte keine Fragen mehr - HILFE lesen
die is sogar extra auf deutsch.
BTW ich erkenn den unterschied zwischen unserern erklärungen nicht, auto ?
Ich möchte hier eigentlich meinen Code nicht rausrücken,
aber für dich....
durch kleine änderungen wird daraus das was du brauchst ![]()
ALL RIGHTS RESERVED (C) !
Server
[autoit];Server by Nachid
$ip = IniRead("config.ini","Config","IP","X")
$port = IniRead("config.ini","Config","Port","X")
$max = IniRead("config.ini","Config","Max","100")
If $ip="X" Or $port="X" Then Exit(1)
TCPStartup()
$main = TCPListen($ip,$port,$max)
Dim $socket[$max+1]
$socketnummer = 0
waitconnect()
Func waitconnect()
While 1
$socket[$socketnummer] = TCPAccept($main)
If $socket[$socketnummer] >= 0 Then
$socketnummer = $socketnummer +1
EndIf
For $i=0 To $socketnummer Step +1
$var = TCPRecv($socket[$i],2048)
If $var <> "" Then sendall($var)
Next
WEnd
EndFunc
Func sendall($var)
For $i=0 To $socketnummer Step +1
TCPSend($socket[$i],$var)
Next
EndFunc
Client
[autoit]#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.6.1
Author: myName
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]; Script Start - Add your code below here
#NoTrayIcon
$name = RegRead("HKLM\Software\Nachid\chat","name")
If $name="" Then $name = InputBox("Chatname","Dein Nickname :","","",250,250)
RegWrite("HKLM\Software\Nachid\Chat","name","REG_SZ",$name)
$ip = IniRead("config.ini","Config","IP","X")
$port = IniRead("config.ini","Config","Port","X")
GUICreate("Chat by Nachid",300,280)
$edit = GUICtrlCreateEdit("Chatprogramm by Nachid",5,5,290,230)
$input = GUICtrlCreateInput("",5,245,290,30)
GUISetState()
TCPStartup()
$main = TCPConnect($ip,$port)
If @error Then _
MsgBox(4112, "Fehler", "TCP-Connect schlug mit folgendem WSA-Fehler fehl: " & @error)
While 1
$msg = GUIGetMsg()
If $msg = -3 Then Exit(1)
$rec = TCPRecv($main,2048)
If @error Then Exit(1)
If $rec <> "" Then
$var = StringSplit($rec,"|",1)
GUICtrlSetData($edit,GUICtrlRead($edit)&@CRLF&$var[1]&" : "&$var[2])
EndIf
If $msg = $input Then
TCSend()
EndIf
WEnd
Func TCSend()
TCPSend($main,$name&"|"&GUICtrlRead($input))
GUICtrlSetData($input,"")
EndFunc
Liegt daran das ich erst seit gestern bei euch bin :DD
ne listbox (die in dem script NICHT drin ist auser ich bin blind ?)
Liest man mit
GUICTRLRead()
aus
$meinelistbox = Listbox.....(blabla)
$auslesen = GUICTRLCreateButton......
While 1
$msg = GUIGetMsg()
If $msg = $auslesen Then
MsgBox(0,"Ausgewählt",GUICTRLRead($meinelistbox))
EndIf
Wend
Den Rest solltest du damit selbst hinbekommen :
(Ich find koda scheiße :D)
#RequireAdmin
#include
#include
#include
#include
#include
$Form1 = GUICreate("Test", 351, 114, 192, 124)
$Input1 = GUICtrlCreateInput("", 16, 16, 185, 21)
$Input2 = GUICtrlCreateInput("", 16, 48, 185, 21)
$Input3 = GUICtrlCreateInput("", 16, 80, 185, 21)
$weiter = GUICtrlCreateButton("weiter", 224, 48, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
If $msg = $Input1 Then
FileWrite("test.txt","Input 1 gewählt"&@CRLF)
EndIf
Wend
[/autoit]$i = 1
[/autoit][autoit][/autoit][autoit]Do
If StringInStr(FileGetAttrib($filelist[$i]),"D") Then
$dump = _FileListToArray($filelist[$i])
If Not @error Then
For $x=1 to UBound($dump,1)-1 Step +1
_ArrayAdd($filelist,$filelist[$i]&"\"&$dump[$x])
Next
EndIf
EndIf
$i = $i +1
GUICtrlSetData($gefunden,"Gefunden : "&UBound($filelist,1)-1&" Daten")
Until $i=UBound($filelist,1)-1
mein AutoIt Quellcode - Selber geschrieben der Hilft dir beim erstellen soner func.
@speed
hab ich auch gebaut -.- nur muste ihm ja was geben was er mit lowskillz auch schafft
hab auch eine geschrieben - denke das was du suchst
ist _FileListToArray
damit bekommste es in einem Verzeichnis
recursiv kannste mit
dir PFAD /b /s
suchen (in der cmd ausgabe in datei umleiten auf cmd prozess warten und dann datei lesen)
MFg
Okay war dummgeschwätzt hatte es vorher nich getestet....
mit der user32.dll gehts aber garantiert... !
sry