# MP277 8" Daten von Flash Card auf USB Stick kopieren



## franzlurch (4 Dezember 2009)

Hallo,

kann mir jemand sagen ob es möglich ist, dass mann z.B. mittes Script Befehl einen Ordner von der MMC Flash Card auf einen USB Stick kopieren kann? Folgender Hintergrund: Ich muss bei einer Anlage nach jedem Teil eine Protokolldatei der Archivierten Werte erstellen (nach jedem Teil das Archiv exportieren und dann für das nächste Teil wieder das Archiv neu starten). Die Protokolldatein lege ich auf der MMC CARD ab. Einmal am Tag möchte dann der Kunde mit einem USB Stick vorbeikommen und diese Daten auf den USB Stick kopieren.

Chris


----------



## derwestermann (4 Dezember 2009)

Weiß nicht, ob das unter WinCE auch klappt, aber schau mal hier:

http://de.wikibooks.org/wiki/Visual_Basic_Script_(VBS):_Einführung

Da gibt es ein Bleistiftprogramm Datei kopieren, hoffe das bringt Dir was.


----------



## franzlurch (15 Dezember 2009)

*MP277 Ordner von MMC auf USB Flash kopieren*

Hallo Wetsremann,

ich glaube das Script funktioniert nicht unter Win CE. Hat hier vielleicht noch jemand ne Idee, wie man die Daten rüber kopieren könnte?

Chris


----------



## Hotsch (15 Dezember 2009)

```
Set fs2=CreateObject("filectl.filesystem")
fs2.filecopy Quelle, Ziel
```

Wobei Quelle und Ziel jeweils Variablen mit der Pfadangabe sind. Wichtig ist auch das bei Ziel die Datei dabei steht und nicht nur der Ordner.


----------



## franzlurch (15 Dezember 2009)

Hallo Hotsch,

das ist ja gerade der Kniff dabei, dass ich nicht den Dateiname angeben will sondern einfach nur einen Ordner kopieren möchte. Der Ordner den ich kopieren möchte enthält mehrere Unterordner mit jeweils zwei *.CSV Dateien darin.

Chris


----------



## Hotsch (15 Dezember 2009)

Das geht so einfach nicht. Du musst jeden Unterordner durchsuchen und jede Datei einzeln kopieren und den entsprechenden Ordner auf dem USB-Stick erstellen.


----------



## franzlurch (15 Dezember 2009)

Hi Hotsch,

und wie kann ich das anstellen, wenn ich z.B. 1 Ordner mit 100 Unterordner habe deren Name ich nicht kenne, da der Name Prokutabhängig ist?

Chris


----------



## Hotsch (15 Dezember 2009)

Du musst erst die Ordner auflisten:

```
Ordner=fs.dir(QuellPfad+"\*.*",16)
```
mit jedem neuen Aufruf von: 

```
Ordner=fs.dir
```
wird dann der nächste Unterordnername in Ordner geschrieben.
Mit 

```
fs.mkdir Zielpfad+"\"+Ordner
```
wird dann der neue Ordner erstellt.

Am Ende musst du dann natürlich noch die Dateien im jeweilige Ordner auflisten:

```
Datei=fs.dir(QuellPfad+"\*.*")
```
Auch hier wird mit dem dir befehl die nächste Datei aufgelistet.
Das ganze ist extrem Aufwendig, aber mir ist keine andere Methode bekannt.

In den FAQ auf dieser Seite findest du aber auch einen Artikel über VBScript Programmierung.


----------



## franzlurch (15 Dezember 2009)

Hi,

danke für die schnelle Antwort. Ich schu mir das ganze mal an. bei weiteren Fragen melde ich mich nochmal bei dir.

Chris


----------



## franzlurch (15 Dezember 2009)

Hi Hotsch,

du hast nicht zufällig ein Beispielscript dafür??


----------



## Hotsch (15 Dezember 2009)

Beispiele habe ich wohl, allerdings nicht für diesen speziellen Fall. Unter diesem Link http://sps-forum.de/showthread.php?t=15348 findest du aber alles notwendige. Musst nur darauf achten dass das Beispiel wirklich für WinCE geschrieben ist.


----------



## franzlurch (15 Dezember 2009)

Hallo hotsch,

wie kann ich den abfragen, wieviele unterordner sich in dem Hauptordner befinden?? Ich muss ja wissen, wie oft ich mit dem Befehl Ordner=fs.dir zum nächsten Ordner springen kann/muss.


----------



## Hotsch (15 Dezember 2009)

Einfach den übergebenen Ordner in einer IF Abfrage auf leer überprüfen.

z.B.:

```
Ordner=fs.dir(Quell+"\*.*",16)  'Unterordner auflisten
If Ordner <> "" Then 
..
end if
```
Das ganze funktioniert natürlich auch mit anderen Schleifenarten:


```
DO
Ordner=fs.dir
..
Loop Until Ordner = ""
```


----------



## franzlurch (15 Dezember 2009)

Hi Hotsch,

danke bin gerade am testen. Ein wenig funktioniert schon. Schaun wir mal weiter!!!


----------



## franzlurch (15 Dezember 2009)

Hallo Hotsch,

hab mal angefangen das zu Programmieren. Mit dem Auslesen des Ordnernamens funktioniert auch schon. An der Stelle, wo ich den neuern Ordner auf dem USB Stick erstellen will hängt sich das Script auf. Kannst du mir sagen was ich hier Falsch mache.


```
Dim i
Dim fs
Dim Ordner
Dim QuellePfad, Zielpfad
TEST_copyfolder=True

QuellePfad=("Storage Card MMC\Saved Archives")
Zielpfad=("Storage Card USB\Saved Archives")
 
Set fs = CreateObject("filectl.filesystem")
 
Ordner=fs.dir(QuellePfad+"\*.*",16)
fs.MkDir Zielpfad+"\"+Ordner          'Hier steigt immer das Script aus

TEST_ordner=Ordner
TEST_copyfolder=False
```
 
Chris


----------



## Hotsch (15 Dezember 2009)

Ist nur eine Vermutung, aber vielleicht funktioniert es wenn du das Zielverzeichnis vorher in einer Variablen zuweist. Also

```
dim tempPfad
Ordner=fs.dir(QuellePfad+"\*.*",16)
tempPfad= Zielpfad+"\"+Ordner
fs.MkDir tempPfad
```

Ansonsten lass dir mal die Pfadangben auf dem Display über 

```
ShowSystemAlarm(TempPfad)
```

Es könnte auch sein das der verkehrte USB Slot angesprochen wird, falls das MP 2 USB Eingänge hat.

anzeigen, ob sich da vielleicht ein Fehler eingeschlichen hat.


----------



## franzlurch (15 Dezember 2009)

hallo Hotsch,

die Funktion fs.mkdir funktioniert anscheinend nur, wenn man eine Richtige Stringvariable verwendet z.B. pfad="Storage Card USB" -> fs.mkdir (pfad).
Wenn ich nun aber die Variable Ordner verwende hängt sich das Script jedesmal an dieser Stelle auf.

Chris


----------



## Hotsch (15 Dezember 2009)

Das funktioniert definitiv mit einer Variablen. Wie lautet die Fehlermeldung denn genau?


----------



## franzlurch (15 Dezember 2009)

Ahhhh Problem gelöst:
Man kann nihct zwei Ordner (Ordner + Unterordner) auf einmal anlegen soindern immer schön nacheinander. Das war mein Fehler!


----------



## franzlurch (16 Dezember 2009)

Hallo Hotsch,

bin wieder ein Stück weiter. Der Hauptordner und der Unterordner werden korrekt angeleggt. Was momentan nicht funktioniert, ist das auslesen der Dateinamen im Unterordner. Hab mal das Script beigefügt, vielleicht fällt dir ein Fehle rauf.


```
Dim i
Dim fs
Dim Ordner, Datei
Dim QuellPfad, Speicherort
Dim Zielpfad
TEST_copyfolder=True
QuellPfad="Storage Card MMC\Saved Archives"
Speicherort="Storage Card USB\Saved Archives\"
Set fs = CreateObject("filectl.filesystem")

fs.mkdir(Speicherort) 'Ordner "Saved Archives" auf dem USB Stick erstellen
Ordner=fs.dir(QuellPfad+"\*.*",16) 'Ordnername "Saved Archives" auf MMC Card auslesen
Zielpfad= Speicherort+Ordner
fs.mkdir (Zielpfad)     'und dann im verzeichnis "Saved Archives" auf dem USB Stick erstellen

Datei=fs.dir(QuellPfad+"\*.*") 'Dateiname auslesen?????????
TEST_pfad=Datei
 

TEST_copyfolder=False
```
 

Chris


----------



## franzlurch (16 Dezember 2009)

Ahhhh,

hab mein Fehler selbst gefunden. Man muß den Pfad halt auch richtig angeben (Pfad+Ordner). Hmmmm.


----------



## franzlurch (16 Dezember 2009)

Hallo,

kann mir vielleicht noch jemand weiterhelfen und mir sagen, wie ich die Ordner auf der MMC Karte wieder löschen kann, wenn ich Sie auf den USB Stick kopiert habe??

Chris


----------



## Hotsch (16 Dezember 2009)

```
fs.rmdir Ordner
```
Ordner muss leer sein


----------



## franzlurch (16 Dezember 2009)

Servus Hotsch,

hab zu testen ml auf der MMC Karte den Ordner "testloeschen" angelegt, funktioniert aber noch nicht so ganz.


```
Dim fs
Set fs = CreateObject("filectl.filesystem")
fs.RmDir ("Storage Card MMC\Saved Archives\testloeschen")
```


----------



## Hotsch (16 Dezember 2009)

Vielleicht ohne Klammer oder auch am Ende mit einem \

```
fs.RmDir "Storage Card MMC\Saved Archives\testloeschen\"
```


----------

