Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Fortschrittanzeige bei batch bzw batchkopiervorgang

Mitglied: Phlegma

Phlegma (Level 1) - Jetzt verbinden

04.02.2007, aktualisiert 11.02.2007, 21160 Aufrufe, 8 Kommentare

moin.
Fortschrittanzeige, das soll die selbe funktion haben wie wenn man bei windows ne datei wohin verschiebt/kopiert
da kommt so ein kleines fenster in dem so ein balken langsam voll wird...

klar dass so eine perfekt windows copy unmöglich sein wird...
oder kann man einfach den explorer anweisen es zu kopiern und dann gibts so eine anzeige?

wenn nicht dann stell ich mir folgendes vor:
ich füre einen xcopy befehl aus( verzeichnis variabel) (nicht zwingeng xcopy aber am einfachsten für ein ganzes verzeichnis)
und vor jedem satz den er ausgibt steht eine zahl, die abnimmt im folgenden:
ausgabe:
01.
3 xcopy XY1 YZ1
02.
2 xcopy XY2 YZ2
03.
1 xcopy XY3 YZ3
04.
(0)
05.
kopiervorgang beendet!
ansonsten wäre auch gut:
ausgabe:
01.
3 
02.
xcopy XY1 YZ1
03.
2 
04.
xcopy XY2 YZ2
05.
1 
06.
xcopy XY3 YZ3
07.
(0)
08.
kopiervorgang beendet!
oder einfach nur
ausgabe
01.
3
02.
2
03.
1
04.
(0)
05.
kopiervorgang beendet!
und jetzt seid ihr wieder gefragt denn dafür kenn ich mal wieder nicht gut genug für aus....
ansonsten wäre eine andere ansehnliche idee zu einer methode, dass der benutzer sieht wie lang ca. der vorgang noch dauert, gut

grüße, Ph
Mitglied: onegasee59
04.02.2007 um 22:24 Uhr
Ich meine immer Aufwand und Nutzen.

entweder vor Kopieren-Befehl, den echo-Befehl "mit Kopieren von xyz läuft"
oder nach Kopier-Befehl den echo-Befehl mit "Kopieren von xyz ist beendet" osä.

Du musst nur dafür sorgen das die Ausgabe durch den Kopierbefehl unterdrückt wird.

Bsp, wie ich es anwende (dabei logge ich alles noch zusätzlich in eine *.txt)

echo.
echo =^> Daten fr neue Datensicherung werden zusammengestellt
echo =^> Daten für neue Datensicherung werden zusammengestellt >> "%startpfad%KSC-DataSafe_log.txt"
xcopy /K /R /E /I /S /C /H /Y /Q "F:\Vertrieb - CallCenter\Vertriebsinformationen" "%USERPROFILE%\Eigene Dateien\Datensicherung-KSC\Vertrieb - CallCenter\Vertriebsinformationen" >> "%startpfad%KSC-DataSafe_log.txt"
xcopy /K /R /E /I /S /C /H /Y /Q "F:\Vertrieb - CallCenter\Telefonakquise\DSD" "%USERPROFILE%\Eigene Dateien\Datensicherung-KSC\Vertrieb - CallCenter\Telefonakquise\DSD" >> "%startpfad%KSC-DataSafe_log.txt"
usw.....
echo.
echo =^> L”schen unn”tiger DB-Kopien [db(Ziffer).mdb] -"Ansichten"-
echo =^> Löschen unnötiger DB-Kopien [db(Ziffer).mdb] -"Ansichten"- >> "%startpfad%KSC-DataSafe_log.txt"
if /i not exist "%USERPROFILE%\Eigene Dateien\Datensicherung-KSC\Vertrieb - CallCenter\Telefonakquise\Datenbanken\Ansichten\db*.mdb" goto end_ksc02
del /f /s /q "%USERPROFILE%\Eigene Dateien\Datensicherung-KSC\Vertrieb - CallCenter\Telefonakquise\Datenbanken\Ansichten\db*.mdb" >> "%startpfad%KSC-DataSafe_log.txt"
:end_ksc02
usw....

gruß
onegasee59
Bitte warten ..
Mitglied: Phlegma
05.02.2007 um 22:18 Uhr
moin,
jo is klar, aber dann ist ja auch nicht schlecht wenn angezigt wird welche datei kopiert wird,
ich brauche nicht zwingend ein logfile, aber ich hätte gerne eine anzeige die mir zeigt wie lang der vorgang noch dauert, bei zB 2gb kann das schon eine weile sein...

danke trotzdem, Ph
Bitte warten ..
Mitglied: onegasee59
08.02.2007 um 15:24 Uhr
Hallo

...aber ich hätte gerne eine anzeige die mir zeigt wie lang der vorgang noch dauert...

Also ich kenne sowas nur in dem Download-Tool WGET integriert.
dort erfolgt eine Anzeige der Downloadgröße, wieviel bisher davon geladen ist und eine grafische Anzeige in der Form
usw......................>
http://toolsandmore.de/Central/Produkte/Software/Internet/Download/wGet ...

Ich weiß allerdings nicht wie die das dort gemacht haben. Ich vermute aber das das ganze per Assembler gemacht wurde. Denn ich kann mir nicht vorstellen das man sowas auf ein paar Zeilen Batch hinbekommt.

Eventuelle haben aber Biber oder bastla oder miniversum hier im Forum eine zündende Idee.

gruß
onegasee59
Bitte warten ..
Mitglied: Biber
09.02.2007 um 20:06 Uhr
Moin Phlegma,

das Thema ProgressBar ist ohnehin schon spannend genug...
.. da muss man/frau nämlich sogar dann ein wenig Schmalz reinstecken, wenn die Visualisierungsfunktionen schon da wären.
Du kannst ja nur 38% von etwas "anzeigen", wenn Du weißt, wieviel 100% sind.

100% der Kopierdauer ---> kennst Du nicht
100% der Gesamt-(Giga)-Bytegröße ---> kennst Du nicht
100% der Datei-Anzahl (zu kopierende Dateien)....*grumpf*...kennst Du auch eigentlich erst hinterher.

Und selbst wenn du etwas davon kennen würdest...
Du kannst dich ja bei z.B. dem XCopy-Befehl (der wildcard-orientiert und rekursiv arbeitet),
eigentlich nicht zwischen zwei Datei-Copy-Befehle hängen und sagen "wieder eine weniger zu kopieren".
Oder beim XCopy nach jeweils 10000 kopierten Byte ein Ereignis auslösen, dass einen Explorer-Progressbar aktualisiert.

Und im Batch isses schon gar möglich.
Liegt nicht daran, dass Batch nix taugt, sondern an der Anforderung.
Du kannst eben nicht, wie onegasee schon beschrieben hat, die Standardkomponenten wie XCopy oder ein anderes fertiges Tool zum "Arbeiten" nehmen und dann noch ein anderes hochspezialisiertes Tool wie einen ProgressBar dranpappen.

Aber weil bald Wochenende ist... eine Fortschrittsanzeige für Arme geb ich Dir mit...

01.
:: --- snipp Hartz4ProgressBar.bat Biber 2007
02.
@echo off & setlocal enableDelayedExpansion
03.
:: --------von hier an anpassen
04.
Set "sourcefiles=D:\temp1\*.*" & set "targetdir=d:\xyz\"
05.
Set "xcopyOpts= /s /e /y /h"
06.
:: --------bis hier her anpassen
07.
Set "tmplist=%temp%\x2copy.lst
08.
xcopy %xcopyOpts% /L "%sourcefiles%" "%targetdir%" >%tmplist%
09.
for /f %%i in ('findstr "Datei(en)" %tmplist%') do Set /a Anzahl=%%i
10.
For /f "delims=" %%i in ('findstr /v "Datei(en)" %tmplist%') do call :XCopyIt "%%i" "%sourcefiles%"
11.
del %tmplist%
12.
goto :eof
13.

14.
:XCopyIt Parameter1: FQ-Quelldateiname para2: Sourcefiles
15.
Echo noch %Anzahl% Dateien...
16.
set "targetsubpath=%~dp1" 
17.
<b>ECHO</b> xcopy %xcopyOpts% %1 %targetDir%!targetSubpath:%~dp2=!
18.
set /a Anzahl-=1
19.
goto :eof
Beim Aufruf legt der also los....
01.

02.
(=20:01:16  F:\=)
03.
>f:\temp\hartz4Progressbar.bat
04.
noch 1673 Dateien...
05.
xcopy  /s /e /y /h "D:\temp1\01000100..txt" d:\xyz\ 
06.
noch 1672 Dateien...
07.
xcopy  /s /e /y /h "D:\temp1\0cooltest.ps1" d:\xyz\ 
08.
noch 1671 Dateien...
09.
xcopy  /s /e /y /h "D:\temp1\106071_PSB_2006.xls" d:\xyz\ 
10.
....
11.
.....
12.
...und kommt Stunden später hier an...
13.
noch 3 Dateien...
14.
xcopy  /s /e /y /h "D:\temp1\Visio 2003\FILES\SETUP\SETUP.INI" d:\xyz\Visio 2003\FILES\SETUP\ 
15.
noch 2 Dateien...
16.
xcopy  /s /e /y /h "D:\temp1\Visio 2003\FILES\SETUP\VISPRO.XML" d:\xyz\Visio 2003\FILES\SETUP\ 
17.
noch 1 Dateien...
18.
xcopy  /s /e /y /h "D:\temp1\Visio 2003\FILES\WINDOWS\INF\AER_1031.ADM" d:\xyz\Visio 2003\FILES\WINDOWS\INF\ 
[Das fette ECHO ist wie immer nur zum Testen und muss zum Scharfmachen raus.]

Nicht nobelpreisverdächtig, aber eine/n Benutzer/in, der/die sonst gar nichts auf dem Bildschirm sieht, könnte es beruhigen...

Gruss
Biber
Bitte warten ..
Mitglied: Phlegma
10.02.2007 um 15:49 Uhr
hihi!
ah das hört sich super an, biber!!
ich wusste doch dass es möglich ist!
mir reicht das vollkommen... so hartz4 is es doch gar nicht...


nun, wieder das übliche.. ich versteh nix .. xD

also ich kann das jetzt einfach so aufnehmen und froh sein ... oder du erklärst mir das jetzt nochmal stück für stück... aber überarbeite dich bitte nich wegen mir...

so dann wärn da noch 2 sachen...
1. nochmal vom anfang.. dieser windows explorer, der fabriziert so schöne windows fortschrittsanzeigen... kann man sich das nich per befehl zu nutze machen?

2.
01.
Und im Batch isses schon gar möglich. 
ich glaub da fehlt ein "nicht" oder?

vielen dank!!
Ph
Bitte warten ..
Mitglied: Biber
10.02.2007 um 16:29 Uhr
Moin Phlegma,

zu 2)
Jepp, da hab ich das "nicht" vergessen.
zu 1) Lässt sich nicht der Explorer-ProgressBar nutzen?
Doch, natürlich.
Habe irgendwo im Forum auch schon mal eine Skizze dazu gepostet.
Aber:
- es geht nicht sinnvoll über Batch. Von daher--->neues Thema (und vorher die folgenden Bedenken sacken lassen)
- wie oben geschrieben - das Werkzeug zur Visualisierung von Prozentangaben ist da. Aber die Prozentangaben nicht.
Du hast NIEMALS einen Wert von 38%, den Du in einenm Schiebebalken darstellen kannst.
Und der zweite Einwand - bei einem Befehl, den Du abschickst als "Starte Prozess KopierMalAllsWasDaIst" ist das ein klarer Auftrag an den Prozess.
Der macht das und sacht "Fertig", wenn er fertig ist. Da bekommst du keine Zwischenberichte "Hier Xcopy, bin mit Datei 265 von 3097 beschäftigt.."

Kurz gesagt... aus meiner Sicht ist es das nicht wert, da viel Aufwand reinzustecken... irgendwo gibt es bestimmt ein Freewaretool "Massen-Copy mit Visualisierung". Ich hab keins.

Zu der Erläuterung, was in dem Batchschnipsel abgeht:
01.
:: --- snipp Hartz4ProgressBar.bat Biber 2007
02.
@echo off & setlocal enableDelayedExpansion
03.
:: --------von hier an anpassen
04.
REM Ich gehe davon aus, dass es einen zu kopierenden Datenklumpen, z.b. alle Dateien aus "D:\Temp" gibt und einen Zielordner "d:\xyz"
05.
REM die beiden könnten/würden in einem produktiven/flexibleren Batch als Parameter %1  und %2 übergeben werden.
06.
REM Wichtig dabei: Parameter %2 (%targetDir%) sollte einen abschliessenden Backslash haben.
07.
REM Damit XCopy rafft, dass es ein Verzeichnis ist, keine Datei.
08.
Set "sourcefiles=D:\temp1\*.*" & set "targetdir=d:\xyz\"
09.
REM Hier also <i>eigentlich</i> ergänzen: 
10.
if [%1] NEQ [] set "sourcefiles=%~1"
11.
if [%2] NEQ [] set "targetDir=%2"
12.
REM XcopyOpts sind die XCopy-Optionen, mit denen kopiert werden soll. Siehe XCopy /?
13.
Set "xcopyOpts= /s /e /y /h"
14.
:: --------bis hier her anpassen
15.
Set "tmplist=%temp%\x2copy.lst"  && REM eine temporäre Textdatei lege ich an...
16.

17.
REM Alles in %tmplist% schreiben, was XCopy kopieren <i>würde</i>... beachte den Parameter /L wie /List
18.
xcopy %xcopyOpts% /L "%sourcefiles%" "%targetdir%" >%tmplist%
19.
REM Alles, was Xcopy in einem Schwung kopiert <i>hätte</i> kopiere ich jetzt häppchenweise Datei für Datei gemäß der Liste
20.

21.
REM Vorher lese ich noch die Gesamtanzahl...die steht auch in der Liste.. und merke mir die in %Anzahl%
22.
for /f %%i in ('findstr "Datei(en)" %tmplist%') do Set /a Anzahl=%%i
23.

24.
REM häppchenweise Datei für Datei gemäß der Liste kopieren bzw XCopyIt-Block aufrufen...
25.
For /f "delims=" %%i in ('findstr /v "Datei(en)" %tmplist%') do call :XCopyIt "%%i" "%sourcefiles%"
26.
REM Jetzt ist die Liste abgearbeitet... aufräumen...
27.
del %tmplist%
28.
REM Ende von alles... hier kann auch noch ein "Echo fertig..." und ein "pause" hin
29.
goto :eof
30.

31.

32.
REM XcopyIt bekommt den vollständigen Dateinamen (fully qualified) und als zweiten Parameter das Root-Verzeichnis der Quelldateien.
33.
REM weil ich ja in das "richtige" Zile-Unterverzeichnis kopieren will (D:\temp\1.txt nach D:\xyz\1.txt; D:\Temp\sub\subsub\2.txt nach D:\xyz\sub\subsub\)
34.
:XCopyIt Parameter1: FQ-Quelldateiname para2: Sourcefiles
35.
Echo noch %Anzahl% Dateien...
36.
set "targetsubpath=%~dp1" 
37.
REM Na ja...diese und die nächste Zeile vielleicht zweimal lesen... Parameter 1 ist z.B "D:\temp\sub\subsub"  ->davon braiche ich das "sub\subsub"
38.
REM Alles, was davor steht ("D:\Temp") kann wech... gehört nicht in die Zielpfadangabe
39.
ECHO xcopy %xcopyOpts% %1 %targetDir%!targetSubpath:%~dp2=!
40.
set /a Anzahl-=1
41.
goto :eof
.... das ist das Problem mit diesen Kurzschnipseln... die Erläuterung braucht immer Seiten....*brummel*

HTH Biber
der immer noch weitere blutjunge rothaarige Praktikantinnen zum Erstellen von Batch-Dokumentationen sucht...
Bitte warten ..
Mitglied: Phlegma
11.02.2007 um 15:48 Uhr
hi!
schön!
danke dir, werde wohl trotzdem wieder ne weile brauchen um das zu verstehen... bin zudem gerade krank... blöde krankheitswelle

vielen dank! Ph

zum testen kam ich auch noch nicht ... erstmal gelöst!
Bitte warten ..
Mitglied: Biber
11.02.2007 um 16:40 Uhr
Moin Phlegma,

hmm..."erstmal gelöst"..."so gut wie fertig"..."ein bisschen schwanger"..."erste Stufe der Gesundheitsreform"....

Ich behaupte mal, was zum Thema "Fortschrittsanzeige bei Batchkopiervorgang" zu sagen ist, ist gesagt.

Zum Thema "Strategien und Fussangeln bei Fortschrittsanzeigen" können wir nochmal unter "Entwicklung"/"Programmierung" einen Brainstormingthread lostreten.
Denn das ist werkzeug-/programmiersprachenunabhängig.
Und durchaus eine Diskussion wert - jeder kennt die lustigen Fortschrittsbalken, die stundenlang bei 15% oder auch manchmal bei 100% verweilen, ganz offensichtlich noch auf der Platte rumrödeln, aber ....irgendwie scheint das nichts mit der Gesamtaufgabe zu tun zu haben.
Oder die Fortschrittsanzeigen mit "281% kopiert..."
Ist ja nicht mal so, dass nur M$ da ein Problem mit hat, das gibt es auch bei Mac OS 10 oder Linux.

Anyhow... diesen Beitrag setz ich erstmal auf "Geschlossen" - auf Wunsch werde ich ihn natürlich wieder öffnen.

Dir erstmal gute Besserung
Gruss
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch: Batch in batch in cfg schreiben
gelöst Frage von pixelBfBatch & Shell2 Kommentare

Hayy, ich bin neu hier im forum:)) Meine frage: Kann ich eine batch schreiben die was in eine batch ...

Batch & Shell
Batch - Kopierjob
Frage von Goldenone95Batch & Shell8 Kommentare

Hallo Community, leider weiß ich bezüglich einer Batch-Datei zum Kopieren und Ersetzen einer Datei in einem anderen Verzeichnis nicht ...

Batch & Shell
Batch - Variablen
gelöst Frage von Marlon1Batch & Shell2 Kommentare

Hallo, Ich habe eine Frage zu Variablen. Und zwar ob es irgendwie geht das Batch mit ein IF Befehl ...

Batch & Shell
Kopfschmerzen (Batch)
gelöst Frage von clragonBatch & Shell4 Kommentare

"" " Kann syntaktisch an dieser Stelle nicht verarbeitet werden Ich sterbe während die Flammen meiner Rage mich innerlich ...

Neue Wissensbeiträge
Datenschutz

SiSyPHuS Win10: Analyse der Telemetriekomponenten in Windows 10

Tipp von freesolo vor 3 TagenDatenschutz1 Kommentar

Alle die sich detailliert für die Datensammlung interessieren die unter Windows 10 stattfindet, sollten sich folgende Analyse des BSI ...

Sicherheit
Adminrechte dank Intel-Grafikkarte
Information von DerWoWusste vor 3 TagenSicherheit2 Kommentare

ist das Advisory, welches beschreibt, welche Intel HD Graphics Modelle Sicherheitslücken haben, mit denen sich schwache Nutzer zu Admins ...

Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 4 TagenInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 5 TagenWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Heiß diskutierte Inhalte
DNS
50 EUR für Telekom-, Unitymedia- und Vodafone-Kunden
Frage von Zorro1199DNS14 Kommentare

Hallo zusammen, wie evaluieren gerade das korrekte Einhalten von DNS-TTLs durch verschiedene Provider. Aktuell suchen wir noch Kunden der ...

Windows Server
Sonntagsfrage: Welchen Sinn seht Ihr noch im Server 2019 Essentials
Frage von ashnodWindows Server13 Kommentare

Guten Morgen, ich habe gestern den Windows Server 2019 Essentials als Trial in einer VM installiert um mir das ...

Windows Server
Windows 2012 R2 - Skript um Druckerkonfiguration auszulesen und zu setzen
gelöst Frage von Der-PhilWindows Server11 Kommentare

Hallo! Kennt ihr eine Möglichkeit, per Skript die Konfiguration eines Druckers auszulesen und auf einen anderen anzuwenden? Hintergrund: Ich ...

Grafik
Viele Fotos organisieren - Windows Dateisystem zu lahm bzw. überfordert
Frage von augustaparkGrafik11 Kommentare

Hallo und Guten Morgen, hat einer eine Idee, wie man viele Fotos sinnvoll und effizient organisieren kann? Wir haben ...