Ein bisschen Batchmagie

toolsKleine Batchfiles sind immer wieder praktisch um schnell kleinere Probleme zu lösen. Diesmal stelle ich ein paar Dateien vor, die zum Erstellen und Kopieren verschiedener Dateien eingesetzt werden können. Dies ist z.B. Hilfreich wenn man die Transfergeschwindigkeit testen möchte. Das eingesetzte Robocopy zeigt am Ende die durchschnittliche Geschwindigkeit an.

Zuerst zwei Batchdateien, um eine Menge kleiner Dateien bzw. eine große Datei zu generieren:

2000 kleine 30 KByte Dateien erzeugen:

Dateiname: smallfiles.cmd

@echo off
del smallfile.txt
md smallfiles
for /l %%a in (1,1,8000) do (
   echo 10 >> smallfile.txt
)

for /l %%a in (1,1,2000) do (
   copy smallfile.txt smallfiles\%%a.bin
)

Als nächstes ein Skript zum Erstellen einer beliebig großen Datei: (einfach irgendwann abbrechen)

Dateiname: largefile.cmd

echo 10 > largefile.bin
:start
type largefile.bin >> largefile.bin
goto start

Dann das erste Skript zum Transferieren der Dateien

Aufruf: Transfer.cmd ZielRechnername

md \\%1\c$\temp
copy transfer.cmd \\%1\c$\temp
rd /s /q \\%1\c$\temp\smallfiles%2
rd /s /q \\%1\c$\temp\largefile%2
robocopy /w:0 /r:0 /NP /NFL /NDL c:\temp\smallfiles \\%1\c$\temp\smallfiles%2
robocopy /w:0 /r:0 /NP /NFL /NDL c:\temp\largefile <a href="file://\\%1\c$\temp\largefile%2">\\%1\c$\temp\largefile%2</a>

Es kopiert zuerst die kleinen Dateien per Robocopy und nach die große Datei.

Möchte man mehrere Kopierjobs parallel starten, dann ist das nächste Skript nützlich:

Aufruf: Mutlitransfer.cmd ZielRechnername AnzahlParallelerJobs

for /l %%a in (1,1,%2) do (
   start "Transfer %%a" transfer.cmd %1 %%a
)
This entry was posted in Deutsch and tagged . Bookmark the permalink.