Hallo,
kann mir bitte jemand helfen?
Ich möchte das Skript im Spoiler, hier der Link zum Ursprungsskript: Rekursive Dateisuche gern so verwenden, dass die Dateinamen erhalten bleiben aber Nummern vorgesetzt werden. Die Dateien sollen auch nicht verschoben, sondern im Startordner umbenannt und dann zum Zielordner kopiert werden.
Freundliche Grüße
Spoiler anzeigen
Local $startPath = 'C:\Test\'
Local $ZielPfad = 'C:\Test\Kopien\' ; Backslash mit verwenden!
Local $ext = 'txt'
Local $artxtFiles = _GetFilesFolder_Rekursiv($startPath, $ext, 0)
Local $len = StringLen(String($artxtFiles[0]))
Local $nul = ''
If $len > 1 Then
For $i = 1 To $len - 1
$nul &= '0'
Next
EndIf
For $i = 1 To $artxtFiles[0]
FileCopy($artxtFiles[$i], $ZielPfad & StringRight($nul & $i, $len) & '.txt')
If @error Then
MsgBox(262160, "ACHTUNG", "Die Datei" & @CRLF & $artxtFiles[$i] & @CRLF & _
"konnte nicht verschoben werden, da eine Zieldatei mit dem Namen" & @CRLF & _
$ZielPfad & StringRight($nul & $i, $len) & '.jpg' & @CRLF & "bereits existiert!")
EndIf
Next
;MsgBox(262176, "FERTIG", "Verschieben und Umbenennen der Dateien beendet.")
;==================================================================================================
; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
; Description: Recursive listing of files and/or folders
; Parameter(s): $sPath Basicpath of listing ('.' -current path, '..' -parent path)
; $sExt Extension for file selection '*' or -1 for all (Default)
; $iDir -1 Files+Folder(Default), 0 only Files, 1 only Folder
; optional: $iRetType 0 for Array, 1 for String as Return
; optional: $sDelim Delimiter for string return
; 0 -@CRLF (Default) 1 -@CR 2 -@LF 3 -';' 4 -'|'
; Return Value(s): Array (Default) or string with found pathes of files and/or folder
; Array[0] includes count of found files/folder
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;==================================================================================================
Func _GetFilesFolder_Rekursiv($sPath, $sExt = '*', $iDir = -1, $iRetType = 0, $sDelim = '0')
Global $oFSO = ObjCreate('Scripting.FileSystemObject')
Global $strFiles = ''
Switch $sDelim
Case '1'
$sDelim = @CR
Case '2'
$sDelim = @LF
Case '3'
$sDelim = ';'
Case '4'
$sDelim = '|'
Case Else
$sDelim = @CRLF
EndSwitch
If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
If $sExt = -1 Then $sExt = '*'
If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
_ShowSubFolders($oFSO.GetFolder($sPath), $sExt, $iDir, $sDelim)
If $iRetType = 0 Then
Local $aOut
$aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
If $aOut[1] = '' Then
ReDim $aOut[1]
$aOut[0] = 0
EndIf
Return $aOut
Else
Return StringTrimRight($strFiles, StringLen($sDelim))
EndIf
EndFunc ;==>_GetFilesFolder_Rekursiv
Func _ShowSubFolders($Folder, $ext = '*', $Dir = -1, $Delim = @CRLF)
If Not IsDeclared("strFiles") Then Global $strFiles = ''
If ($Dir = -1) Or ($Dir = 0) Then
For $file In $Folder.Files
If $ext <> '*' Then
If StringRight($file.Name, StringLen($ext)) = $ext Then _
$strFiles &= $file.Path & $Delim
Else
$strFiles &= $file.Path & $Delim
EndIf
Next
EndIf
For $Subfolder In $Folder.SubFolders
If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
_ShowSubFolders($Subfolder, $ext, $Dir, $Delim)
Next
EndFunc ;==>_ShowSubFolders