Sorry wegen Doppelpost hat keiner eine idee?
Gruß
Subz
Sorry wegen Doppelpost hat keiner eine idee?
Gruß
Subz
Hallo,
brauche wieder mal eure unterstützung ich möchte einen bzw mehrer,
Client abfragen
über.
Kommandline
registry einträge
Log dateien
weiss zu zeit nicht wo ich ansetzen soll
kann jemand mir paar tipps geben.
Was will ich abfragen?
Updates Verfügbar %anzahl%
Updates Instaliert %anzahl%
Reboot erforderlich
Updates runtergeladen .......
Ich habe überall gesucht leider nichts gefunden,
aber der AUState schlüssel ist leider bei mir nicht vorhanden.
Falls die frage kommen sollte es soll vom client gestartet werden können und nicht vom WSUS-Server
Danke für die Unterstützung
SubZero
So jetzt habe ich erfahren man kann es mit DriveSpaceFree machen:
habe was viel interesanteres gefunden ![]()
Wie kann ich bestimmte werte ausgeben:
zb. nur
C: Fixed NTFS WINXP 7.8 GB 1.3 GB 16%
D: Fixed NTFS DEV 10.7 GB 809.7 MB 7%
E: Fixed NTFS SRC 4.5 GB 1.8 GB 41%
F: Fixed NTFS MSDN 2.4 GB 587.5 MB 24%
G: Fixed NTFS GAMES 8.0 GB 1.0 GB 13%
oder z.b
OS Hot Fix Installed
...
...
...
...
psinfo \\development -h -d
PsInfo v1.6 - local and remote system information viewer
Copyright (C) 2001-2004 Mark Russinovich
Sysinternals - https://autoit.de/www.sysinternals.com
System information for \\DEVELOPMENT:
Uptime: 28 days, 0 hours, 15 minutes, 12 seconds
Kernel version: Microsoft Windows XP, Multiprocessor Free
Product type Professional
Product version: 5.1
Service pack: 0
Kernel build number: 2600
Registered organization: Sysinternals
Registered owner: Mark Russinovich
Install date: 1/2/2002, 5:29:21 PM
Activation status: Activated
IE version: 6.0000
System root: C:\WINDOWS
Processors: 2
Processor speed: 1.0 GHz
Processor type: Intel Pentium III
Physical memory: 1024 MB
Volume Type Format Label Size Free Free
A: Removable 0%
C: Fixed NTFS WINXP 7.8 GB 1.3 GB 16%
D: Fixed NTFS DEV 10.7 GB 809.7 MB 7%
E: Fixed NTFS SRC 4.5 GB 1.8 GB 41%
F: Fixed NTFS MSDN 2.4 GB 587.5 MB 24%
G: Fixed NTFS GAMES 8.0 GB 1.0 GB 13%
H: CD-ROM CDFS JEDIOUTCAST 633.6 MB 0%
I: CD-ROM 0% Q: Remote 0%
T: Fixed NTFS Test 502.0 MB 496.7 MB 99%
OS Hot Fix Installed
Q147222 1/2/2002
Q309521 1/4/2002
Q311889 1/4/2002
Q313484 1/4/2002
Q314147 3/6/2002
Q314862 3/13/2002
Q315000 1/8/2002
Q315403 3/13/2002
Q317277 3/20/2002
Gibt es da eine möglichkeit mit Autoit Boardmitteln??
Hallo,
stehe wieder mal vor einem neuen Problem
Hat jemand einen tipp für mich wie ich Festplatten Platz und dazugehörigen Laufwerksbuchstaben von einem Remote rechner auslesen,
Hat jemand einen Tipp für mich ??
Gruß
SubZero
Hey,
da war tatsächlich ein fehler in $filename aber trotzdem funktioniert es nicht,
Filecopy funktioniert,
aber das war es dann auch !!!??
bin davon überzeugt das ich hier noch ein fehler habe??
case $Imagecheck
Local $index = _GUICtrlListView_GetSelectedIndices($hLV)
Local $currFilePath = $aFiles[$index]
$FileNameimage = StringRegExpReplace($aFiles[$index], '.*\\(.+)\..*', '$1')
FileCopy(@ScriptDir & '\tis\Template.tis', @ScriptDir & '\tis\' & $FileNameimage & '.tis', 1)
$file = FileOpen(@ScriptDir & '\tis\' & $FileNameimage & '.tis', 2)
If $file = -1 Then
MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
Exit
EndIf
$sFileRead = FileRead(@ScriptDir & '\tis\' & $FileNameimage & '.tis')
$sReplace = StringReplace($sFileRead, "\\server\share\test", "\\server\app\test")
;FileWrite(@ScriptDir & '\tis\' & $filename & '.tis', $sReplace)
FileClose($file)
[/autoit]Hier mein ganzer Code:
#include <File.au3>
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <Array.au3>
$gui = GUICreate('test', 600, 650, -1, -1)
$LV = GUICtrlCreateListView('Images', 20, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$hLV = GUICtrlGetHandle($LV)
$LVio = GUICtrlCreateListView('Erfolgreich', 180, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$LVnio = GUICtrlCreateListView('Fehlerhaft', 370, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$button = GUICtrlCreateButton('Zeige Image Pfad', 20, 580, 100, 20)
$Imagecheck = GUICtrlCreateButton('Image Prüfen', 20, 600, 100, 20)
$Imagecheckall = GUICtrlCreateButton('Alle Images Prüfen', 20, 620, 100, 20)
GUISetState(@SW_SHOW)
GLobal $path = 'd:\'
Local $aFiles = _GetFilesFolder_Rekursiv($path, 'tib', 0) ; Ausgabe in Array, nur Dateien
If Not IsArray($aFiles) Then Exit MsgBox(0, 'Fehler', 'Keine "tib"-Files vorhanden.')
_ArrayDelete($aFiles, 0) ; Zähler löschen für Indexübereinstimmung mit LV
; Dateinamen in LV eintragen
Local $FileName
For $i = 0 To UBound($aFiles) -1
$FileName = StringRegExpReplace($aFiles[$i], '.*\\(.+)\..*', '$1')
_GUICtrlListView_AddItem($hLV, $FileName)
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $button
; beim Auslesen des markierten LV-Eintrages
Local $index = _GUICtrlListView_GetSelectedIndices($hLV)
; den zugehörigen Dateipfad kannst du jetzt direkt aus dem Array auslesen
Local $currFilePath = $aFiles[$index]
MsgBox(0, ' $aFiles[$index]', $aFiles[$index])
MsgBox(0, '$aFiles[$index]', $aFiles[$index])
case $Imagecheck
Local $index = _GUICtrlListView_GetSelectedIndices($hLV)
Local $currFilePath = $aFiles[$index]
$FileNameimage = StringRegExpReplace($aFiles[$index], '.*\\(.+)\..*', '$1')
FileCopy(@ScriptDir & '\tis\Template.tis', @ScriptDir & '\tis\' & $FileNameimage & '.tis', 1)
$file = FileOpen(@ScriptDir & '\tis\' & $FileNameimage & '.tis', 2)
If $file = -1 Then
MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
Exit
EndIf
$sFileRead = FileRead(@ScriptDir & '\tis\' & $FileNameimage & '.tis')
$sReplace = StringReplace($sFileRead, "\\server\share\test", "\\server\app\test")
;FileWrite(@ScriptDir & '\tis\' & $filename & '.tis', $sReplace)
FileClose($file)
[/autoit] [autoit][/autoit] [autoit]EndSwitch
WEnd
;==================================================================================================
; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
; Description: Rekursive Auflistung von Dateien und/oder Ordnern
; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
; optional: $iRetType 0 gibt Array, 1 gibt String zurück
; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
; 0 -@CRLF (Standard); 1 -@CR; 2 -@LF; oder beliebiges Zeichen
; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
; 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 '0'
$sDelim = @CR
Case '1'
$sDelim = @CR
Case '2'
$sDelim = @LF
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,1), $sDelim)
If $aOut[1] = '' Then
ReDim $aOut[1]
$aOut[0] = 0
EndIf
Return $aOut
Else
Return StringTrimRight($strFiles,1)
EndIf
EndFunc
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
Also Kopieren tut er richtig $filname nimmst er auch namen für die datei, also müsste doch dann $filename stimmen oder?
Der rest geht nicht hier mein ganzer code kann leider den fehler nicht finden kann mich jemand unterstützen
Danke.
#include <File.au3>
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <Array.au3>
$gui = GUICreate('test', 600, 650, -1, -1)
$LV = GUICtrlCreateListView('Images', 20, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$hLV = GUICtrlGetHandle($LV)
$LVio = GUICtrlCreateListView('Erfolgreich', 180, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$LVnio = GUICtrlCreateListView('Fehlerhaft', 370, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$button = GUICtrlCreateButton('Zeige Image Pfad', 20, 580, 100, 20)
$Imagecheck = GUICtrlCreateButton('Image Prüfen', 20, 600, 100, 20)
$Imagecheckall = GUICtrlCreateButton('Alle Images Prüfen', 20, 620, 100, 20)
GUISetState(@SW_SHOW)
GLobal $path = 'c:\'
Local $aFiles = _GetFilesFolder_Rekursiv($path, 'tib', 0) ; Ausgabe in Array, nur Dateien
If Not IsArray($aFiles) Then Exit MsgBox(0, 'Fehler', 'Keine "tib"-Files vorhanden.')
_ArrayDelete($aFiles, 0) ; Zähler löschen für Indexübereinstimmung mit LV
; Dateinamen in LV eintragen
Local $FileName
For $i = 0 To UBound($aFiles) -1
$FileName = StringRegExpReplace($aFiles[$i], '.*\\(.+)\..*', '$1')
_GUICtrlListView_AddItem($hLV, $FileName)
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $button
; beim Auslesen des markierten LV-Eintrages
Local $index = _GUICtrlListView_GetSelectedIndices($hLV)
; den zugehörigen Dateipfad kannst du jetzt direkt aus dem Array auslesen
Local $currFilePath = $aFiles[$index]
MsgBox(0, '', $filename)
MsgBox(0, '', $aFiles[$index])
case $Imagecheck
Local $index = _GUICtrlListView_GetSelectedIndices($hLV)
Local $currFilePath = $aFiles[$index]
FileCopy(@ScriptDir & '\tis\Template.tis', @ScriptDir & '\tis\' & $filename & '.tis', 1)
$file = FileOpen(@ScriptDir & '\tis\' & $filename & '.tis', 2)
If $file = -1 Then
MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
Exit
EndIf
$sFileRead = FileRead(@ScriptDir & '\tis\' & $filename & '.tis')
$sReplace = StringReplace($sFileRead, "\\server\share\test", "\\server\app\test")
FileWrite(@ScriptDir & '\tis\' & $filename & '.tis', $sReplace)
FileClose($file)
[/autoit] [autoit][/autoit] [autoit]EndSwitch
WEnd
;==================================================================================================
; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
; Description: Rekursive Auflistung von Dateien und/oder Ordnern
; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
; optional: $iRetType 0 gibt Array, 1 gibt String zurück
; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
; 0 -@CRLF (Standard); 1 -@CR; 2 -@LF; oder beliebiges Zeichen
; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
; 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 '0'
$sDelim = @CR
Case '1'
$sDelim = @CR
Case '2'
$sDelim = @LF
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,1), $sDelim)
If $aOut[1] = '' Then
ReDim $aOut[1]
$aOut[0] = 0
EndIf
Return $aOut
Else
Return StringTrimRight($strFiles,1)
EndIf
EndFunc
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
Leider funktioniert das nicht ![]()
Hier mein Code kannst dich selbst überzeugen ![]()
#include <File.au3>
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <Array.au3>
$gui = GUICreate('test', 600, 650, -1, -1)
$LV = GUICtrlCreateListView('Images', 20, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$hLV = GUICtrlGetHandle($LV)
$LVio = GUICtrlCreateListView('Erfolgreich', 180, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$LVnio = GUICtrlCreateListView('Fehlerhaft', 370, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$button = GUICtrlCreateButton('Zeige Image Pfad', 20, 580, 100, 20)
$Imagecheck = GUICtrlCreateButton('Image Prüfen', 20, 600, 100, 20)
$Imagecheckall = GUICtrlCreateButton('Alle Images Prüfen', 20, 620, 100, 20)
GUISetState(@SW_SHOW)
GLobal $path = 'D:\acronis'
Local $aFiles = _GetFilesFolder_Rekursiv($path, 'tib', 0) ; Ausgabe in Array, nur Dateien
If Not IsArray($aFiles) Then Exit MsgBox(0, 'Fehler', 'Keine "tib"-Files vorhanden.')
_ArrayDelete($aFiles, 0) ; Zähler löschen für Indexübereinstimmung mit LV
; Dateinamen in LV eintragen
Local $FileName
For $i = 0 To UBound($aFiles) -1
$FileName = StringRegExpReplace($aFiles[$i], '.*\\(.+)\..*', '$1')
_GUICtrlListView_AddItem($hLV, $FileName)
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $button
; beim Auslesen des markierten LV-Eintrages
Local $index = _GUICtrlListView_GetSelectedIndices($hLV)
; den zugehörigen Dateipfad kannst du jetzt direkt aus dem Array auslesen
Local $currFilePath = $aFiles[$index]
MsgBox(0, '', $filename)
MsgBox(0, '', $aFiles[$index])
case $Imagecheck
Local $index = _GUICtrlListView_GetSelectedIndices($hLV)
Local $currFilePath = $aFiles[$index]
FileCopy(@ScriptDir & '\tis\Template.tis', @ScriptDir & '\tis\' & $filename & '.tis', 1)
$file = FileOpen(@ScriptDir & '\tis\' & $filename & '.tis', 2)
If $file = -1 Then
MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
Exit
EndIf
$sFileRead = FileRead(@ScriptDir & '\tis\' & $filename & '.tis')
$sReplace = StringReplace($sFileRead, "\\server\share\test", "\\server\app\test")
FileWrite(@ScriptDir & '\tis\' & $filename & '.tis', $sReplace)
FileClose($file)
[/autoit] [autoit][/autoit] [autoit]EndSwitch
WEnd
;==================================================================================================
; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
; Description: Rekursive Auflistung von Dateien und/oder Ordnern
; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
; optional: $iRetType 0 gibt Array, 1 gibt String zurück
; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
; 0 -@CRLF (Standard); 1 -@CR; 2 -@LF; oder beliebiges Zeichen
; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
; 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 '0'
$sDelim = @CR
Case '1'
$sDelim = @CR
Case '2'
$sDelim = @LF
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,1), $sDelim)
If $aOut[1] = '' Then
ReDim $aOut[1]
$aOut[0] = 0
EndIf
Return $aOut
Else
Return StringTrimRight($strFiles,1)
EndIf
EndFunc
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
Gruß
SubZero
Meine ich doch ![]()
ich dachte mitlerweile müsste ich ja wenigstens kopieren Können ![]()
Hat jemand einen Lösungsvorschlag??
das habe ich doch so gemacht ? oder habe ich ein verständnis fehler??
[autoit]FileCopy(@ScriptDir & '\test\Template.tip', @ScriptDir & '\tip\' & $filename & '.tip', 1)
[/autoit]Leider klappt es nicht ![]()
Hey,
ich möchte gerne eine datei kopieren und anschliessend einen text inhalt verändern.
So sieht mein Jetziger Code aus aber irgendwie scheitert es schon beim Fileopen:
Das Kopieren Klappt.
FileCopy(@ScriptDir & '\test\Template.tip', @ScriptDir & '\tip\' & $filename & '.tip', 1)
$file = FileOpen(@ScriptDir & '\test\' & $filename & '.tip', 2)
If $file = -1 Then
MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
Exit
EndIf
FileClose($file)
[/autoit]Ich möchte in der Datei das:
\\server\share\test
gegen das in der datei austauschen:
\\server\app\test
Würde mich über jede hilfe freuen
Gruss
SubZero
So wollte nur mein Aktuelles Script Posten .
Habe noch ein Problem das in der lisview:
$FileName = StringRight($aFiles[$i], StringLen($aFiles[$i] - StringInStr($aFiles[$i], '\', -1)))
[/autoit]
Wo ist hier der fehler?
er zeigt nur die letzten 2 buchstaben der datei:
ib
Ich wollte aber den dateinamen darstellen wie mache ich das?
Also als beispiel:
server1.tib
Eine frage noch ich wollte irgendwie noch loggen welche immages bereits geprüft worden sind und welche images neu erstellt worden sind .
Sollte ichj mir jetzt darüber gedanken machen oder Später nicht das ich Später wieder von vorne anfangen muss?
Gruß
SubZero
#include <File.au3>
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <Array.au3>
$gui = GUICreate('Acronis Image Check', 600, 650, -1, -1)
$LV = GUICtrlCreateListView('Images', 20, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$hLV = GUICtrlGetHandle($LV)
$LVio = GUICtrlCreateListView('Erfolgreich', 180, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$LVnio = GUICtrlCreateListView('Fehlerhaft', 370, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$button = GUICtrlCreateButton('Zeige Image Pfad', 20, 580, 100, 20)
$Imagecheck = GUICtrlCreateButton('Image Prüfen', 20, 600, 100, 20)
$Imagecheckall = GUICtrlCreateButton('Alle Images Prüfen', 20, 620, 100, 20)
GUISetState(@SW_SHOW)
GLobal $path = 'c:\acronis'
Local $aFiles = _GetFilesFolder_Rekursiv($path, 'tib', 0) ; Ausgabe in Array, nur Dateien
If Not IsArray($aFiles) Then Exit MsgBox(0, 'Fehler', 'Keine "tib"-Files vorhanden.')
_ArrayDelete($aFiles, 0) ; Zähler löschen für Indexübereinstimmung mit LV
; Dateinamen in LV eintragen
Local $FileName
For $i = 0 To UBound($aFiles) -1
$FileName = StringRight($aFiles[$i], StringLen($aFiles[$i] - StringInStr($aFiles[$i], '\', -1)))
_GUICtrlListView_AddItem($hLV, $FileName)
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $button
; beim Auslesen des markierten LV-Eintrages
Local $index = _GUICtrlListView_GetSelectedIndices($hLV)
; den zugehörigen Dateipfad kannst du jetzt direkt aus dem Array auslesen
Local $currFilePath = $aFiles[$index]
MsgBox(0, '', $aFiles[$index])
EndSwitch
WEnd
;==================================================================================================
; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
; Description: Rekursive Auflistung von Dateien und/oder Ordnern
; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
; optional: $iRetType 0 gibt Array, 1 gibt String zurück
; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
; 0 -@CRLF (Standard); 1 -@CR; 2 -@LF; oder beliebiges Zeichen
; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
; 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 '0'
$sDelim = @CRLF
Case '1'
$sDelim = @CR
Case '2'
$sDelim = @LF
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,1), $sDelim)
If $aOut[1] = '' Then
ReDim $aOut[1]
$aOut[0] = 0
EndIf
Return $aOut
Else
Return StringTrimRight($strFiles,1)
EndIf
EndFunc
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
Hey Bugfix
Danke erstmal ![]()
habe es jetzt in mien Script eingebaut.
#include <File.au3>
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <Array.au3>
$gui = GUICreate('Acronis Image Check', 600, 650, -1, -1)
$LV = GUICtrlCreateListView('Images', 20, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$hLV = GUICtrlGetHandle($LV)
$LVio = GUICtrlCreateListView('Erfolgreich', 180, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$LVnio = GUICtrlCreateListView('Fehlerhaft', 370, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$button = GUICtrlCreateButton('Zeige Image Pfad', 20, 580, 100, 20)
$Imagecheck = GUICtrlCreateButton('Image Prüfen', 20, 600, 100, 20)
$Imagecheckall = GUICtrlCreateButton('Alle Images Prüfen', 20, 620, 100, 20)
GUISetState(@SW_SHOW)
GLobal $path = 'c:\acronis'
Local $aFiles = _GetFilesFolder_Rekursiv($path, 'tib', 0) ; Ausgabe in Array, nur Dateien
If Not IsArray($aFiles) Then Exit MsgBox(0, 'Fehler', 'Keine "tib"-Files vorhanden.')
_ArrayDelete($aFiles, 0) ; Zähler löschen für Indexübereinstimmung mit LV
; Dateinamen in LV eintragen
Local $FileName
For $i = 0 To UBound($aFiles) -1
$FileName = StringRight($aFiles[$i], StringLen($aFiles[$i] - StringInStr($aFiles[$i], '\', -1)))
_GUICtrlListView_AddItem($hLV, $FileName)
Next
; beim Auslesen des markierten LV-Eintrages
Local $index = _GUICtrlListView_GetSelectedIndices($hLV)
; den zugehörigen Dateipfad kannst du jetzt direkt aus dem Array auslesen
Local $currFilePath = $aFiles[$index]
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
;==================================================================================================
; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
; Description: Rekursive Auflistung von Dateien und/oder Ordnern
; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
; optional: $iRetType 0 gibt Array, 1 gibt String zurück
; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
; 0 -@CRLF (Standard); 1 -@CR; 2 -@LF; oder beliebiges Zeichen
; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
; 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 '0'
$sDelim = @CRLF
Case '1'
$sDelim = @CR
Case '2'
$sDelim = @LF
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,1), $sDelim)
If $aOut[1] = '' Then
ReDim $aOut[1]
$aOut[0] = 0
EndIf
Return $aOut
Else
Return StringTrimRight($strFiles,1)
EndIf
EndFunc
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
Habe aber in meiner listview nur einträge die sich ib nennen ???
Gruß
SubZero
Hallo Bugfix ![]()
Problem ist ich bin nicht für die sicherung aller server zuständig aber dafür zuständig das sie laufen
ich spiele stichprobenartig images zurück aber das kann ich nicht für jeden server machen,
zeit und hardware muss ja immer da sein
so kann ich wenigstens etwas testen daher ![]()
Acronis Enterprise kann man einzelne images testen aber ihm keine liste übergeben das er alle testet ![]()
und wie mache ich das für alle unterordner??
Wie baue ich das hier ein??
For $i = 1 To UBound($aFolder) -1
If FileExists($path & '\' & $aFolder[$i] & '\' & $log) Then
If $aLV_Item[UBound($aLV_Item)-1][0] <> '' Then ReDim $aLV_Item[UBound($aLV_Item)+1][2]
$aLV_Item[UBound($aLV_Item)-1][0] = $path & '\' & $aFolder[$i] & '\' & $log
$aLV_Item[UBound($aLV_Item)-1][1] = $aFolder[$i] & '.tib'
GUICtrlCreateListViewItem($aFolder[$i] & '.tib', $LV)
EndIf
Next
ok ein Problem habe ich jetzt mit meiner Listview
Ich muss in alle unter ordner nach *.tib durchsuchen??
das item was in der Listview dargestellt wird ergibt sich zur zeit aus dem Ordnernamen & .tib
jetzt muss ich wie folgt die server in der Listview darstellen,
also in alle unterorder gehen und nach *.tib suchen:
\\server\share\sicherung\server1\server1.tib
\\server\share\sicherung\server2\server2.tib
\\server\share\sicherung\server3\server3.tib
\\server\share\sicherung\server4\server4.tib
\\server\share\sicherung\server5\server5.tib
\\server\share\sicherung\server6\server6.tib
\\server\share\sicherung\server7\server7.tib
\\server\share\sicherung\server8\server8.tib
\\server\share\sicherung\server9\server9.tib
\\server\share\sicherung\server10\server10.tib
\\server\share\sicherung\server11\server11.tib
\\server\share\sicherung\server12\server12.tib
\\server\share\sicherung\server13\server13.tib
\\server\share\sicherung\app\server1\server1_montag.tib
\\server\share\sicherung\app\server1\server1_dienstag.tib
\\server\share\sicherung\app\server2\server2_montag.tib
\\server\share\sicherung\app\server2\server2_dienstag.tib
\\server\share\sicherung\app\server3\server3_montag.tib
\\server\share\sicherung\app\server3\server3_dienstag.tib
und so sollte es in der listview dargestellt werden:
server1.tib
server2.tib
server3.tib
server4.tib
server5.tib
server6.tib
server7.tib
server8.tib
server9.tib
server10.tib
server11.tib
server12.tib
server13.tib
server1_montag.tib
server1_dienstag.tib
server2_montag.tib
server2_dienstag.tib
server3_montag.tib
server2_dienstag.tib
#include <File.au3>
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <Array.au3>
Local $path = '\\server\share' ; Pfad mit den Unterordnern
Local $log = '*.tib'
Local $aFolder = _FileListToArray($path, '*', 2)
Global $aLV_Item[1][2] = [['']]
Local $ind, $aInd, $text
$gui = GUICreate('Acronis Image Check', 600, 650, -1, -1)
$LV = GUICtrlCreateListView('Images', 20, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$hLV = GUICtrlGetHandle($LV)
$LVio = GUICtrlCreateListView('Erfolgreich', 180, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$LVnio = GUICtrlCreateListView('Fehlerhaft', 370, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$button = GUICtrlCreateButton('Zeige Image Pfad', 20, 580, 100, 20)
$Imagecheck = GUICtrlCreateButton('Image Prüfen', 20, 600, 100, 20)
$Imagecheckall = GUICtrlCreateButton('Alle Images Prüfen', 20, 620, 100, 20)
For $i = 1 To UBound($aFolder) -1
If FileExists($path & '\' & $aFolder[$i] & '\' & $log) Then
If $aLV_Item[UBound($aLV_Item)-1][0] <> '' Then ReDim $aLV_Item[UBound($aLV_Item)+1][2]
$aLV_Item[UBound($aLV_Item)-1][0] = $path & '\' & $aFolder[$i] & '\' & $log
$aLV_Item[UBound($aLV_Item)-1][1] = $aFolder[$i] & '.tib'
GUICtrlCreateListViewItem($aFolder[$i] & '.tib', $LV)
EndIf
Next
GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
Switch $msg
Case -3
Exit
Case $button
$ind = _GUICtrlListView_GetSelectedIndices($hLV)
If $ind Then
$text = _GUICtrlListView_GetItemText($hLV, $ind)
$aInd = _ArraySearch($aLV_Item, $text, 0, 0, 0, 0, 1, 1)
If Not @error Then MsgBox(0, 'Pfad', 'Der Pfad zum image:' & @lf & $aLV_Item[$aInd][0])
EndIf
Case $Imagecheck
EndSwitch
WEnd
Könnt ihr mir bei meinem Problem helfen??
Hey,
habe wieder mal was vor
mit eurer hilfe werde ich das betimmt hinkriegen ![]()
Ich möchte in einem bestimmten verzeichnis Acronis Trueimage sicherungen prügen
Ich lese zur zeit einen ordner inklusive unter odner *.tib " *.tib=acronis image"
jetzt muss ich acronis sagen das er das image prüfen soll "siehe Gui"
Den Parameter übergeben: das kriege ich auch noch hin:
TrueImageTerminal.exe /execute:testserver.tis"
so jetzt komme ich zu meinem Problem in der testserver.tis sind die parameter hinterlegt welcher server gepüft werden soll.
welcher pfade und der dateiname wie kriege ich das hin ????.
bin mir da nicht sicher wie ich das machen soll ??? ![]()
zweites Problem
und so sieht die DOSBOX aus wenn es fehlschlägt:
####################################################################
TrueImageTerminal.exe /execute:testserver.tis"
I00640072:Der Zeitplan für die Ausführung des Skripts wurde erfolgreich aktivie
t.
Operation wurde gestartet. Klicken Sie Strg+C, um das Terminalfenster zu
schließen oder Strg+B, um die Aktion abzubrechen.
-------------------------------------------------------------------------------
Image-ÜberprüfungVon Datei: "C:\Program Files\Acronis\TrueImageEnterprise
\testserver.tib"Bereite Operation vor: "Aktuelle check-Operation"...
Fortschritt gesamt:
[Fertig gestellt ] [..................................]0%
Fehler bei Operation. Details finden Sie in der Ereignisanzeige.
######################################################################
und so sieht die DOSBOX aus wenn es erfolgreich war:
######################################################################
TrueImageTerminal.exe" /execute:"C:\Program Files\Acronis\TrueImageEterprise\testserver.tis" /progress
Operation wurde gestartet. Klicken Sie Strg+C, um das Terminalfenster zu
schließen oder Strg+B, um die Aktion abzubrechen.
-------------------------------------------------------------------------------
Image-ÜberprüfungVon Datei: "C:\Program Files\Acronis\TrueImageEnterprise
\testserver.tib"Operation 1 von 1Imagearchiv überprüfen
Fortschritt der aktuellen Aktion: Fortschritt gesamt:
[#.................................]21% [#######...........................]21%
-------------------------------------------------------------------------------
Image-ÜberprüfungVon Datei: "C:\Program Files\Acronis\TrueImageEnterprise
\testserver.tib"Operation 1 von 1Imagearchiv überprüfen
Fortschritt der aktuellen Aktion: Fortschritt gesamt:
[#.................................]21% [#######...........................]21%
00640072:Der Zeitplan für die Ausführung des Skripts wurde erfolgreich aktivier
.
[#.................................]99% [#################################.]99%
-------------------------------------------------------------------------------
Image-ÜberprüfungVon Datei: "C:\Program Files\Acronis\TrueImageEnterprise
\testserver.tib"Synchronisation mit dem Betriebssystem...
Fortschritt der aktuellen Aktion: Fortschritt gesamt:
[..................................]0% [Fertig gestellt ]
-------------------------------------------------------------------------------
Image-ÜberprüfungVon Datei: "C:\Program Files\Acronis\TrueImageEnterprise
\testserver.tib"Synchronisation mit dem Betriebssystem...
Fortschritt der aktuellen Aktion: Fortschritt gesamt:
[..................................]0% [Fertig gestellt ]
-------------------------------------------------------------------------------
Image-ÜberprüfungVon Datei: "C:\Program Files\Acronis\TrueImageEnterprise
\testserver.tib"Synchronisation mit dem Betriebssystem...
Fortschritt der aktuellen Aktion: Fortschritt gesamt:
[..................................]0% [Fertig gestellt ]
Operation abgeschlossen.
############################################################################
Leider wenn ich die ausgabe der dosbox umleite kommt kein ergebniss da er ja die Prozenzte hochzählt??
Wie kann ich abfragen ob er erfolgreich war oder nicht und einen statusbalken ?
Würde mich über jede hilfe freuen
#include <File.au3>
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <Array.au3>
Local $path = '\\server\share\sicherung' ; Pfad mit den Unterordnern
Local $log = '*.tib'
Local $aFolder = _FileListToArray($path, '*', 2)
Global $aLV_Item[1][2] = [['']]
Local $ind, $aInd, $text
$gui = GUICreate('Acronis Image Check', 600, 650, -1, -1)
$LV = GUICtrlCreateListView('Images', 20, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$hLV = GUICtrlGetHandle($LV)
$LVio = GUICtrlCreateListView('Erfolgreich', 180, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$LVnio = GUICtrlCreateListView('Fehlerhaft', 370, 0, 150, 580)
GUICtrlSendMsg(-1, 0x101E, 0, $LVSCW_AUTOSIZE_USEHEADER)
$button = GUICtrlCreateButton('Zeige Image Pfad', 20, 580, 100, 20)
$Imagecheck = GUICtrlCreateButton('Image Prüfen', 20, 600, 100, 20)
$Imagecheckall = GUICtrlCreateButton('Alle Images Prüfen', 20, 620, 100, 20)
For $i = 1 To UBound($aFolder) -1
If FileExists($path & '\' & $aFolder[$i] & '\' & $log) Then
If $aLV_Item[UBound($aLV_Item)-1][0] <> '' Then ReDim $aLV_Item[UBound($aLV_Item)+1][2]
$aLV_Item[UBound($aLV_Item)-1][0] = $path & '\' & $aFolder[$i] & '\' & $log
$aLV_Item[UBound($aLV_Item)-1][1] = $aFolder[$i] & '.tib'
GUICtrlCreateListViewItem($aFolder[$i] & '.tib', $LV)
EndIf
Next
GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
Switch $msg
Case -3
Exit
Case $button
$ind = _GUICtrlListView_GetSelectedIndices($hLV)
If $ind Then
$text = _GUICtrlListView_GetItemText($hLV, $ind)
$aInd = _ArraySearch($aLV_Item, $text, 0, 0, 0, 0, 1, 1)
If Not @error Then MsgBox(0, 'Pfad', 'Der Pfad zum image:' & @lf & $aLV_Item[$aInd][0])
EndIf
Case $Imagecheck
EndSwitch
WEnd
Würde mich über jede Unterstützung freuen ![]()
Habe es selbst gelöst daher habe ich es auf gelöst gestellt ![]()