PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zufällige Datei verschieben


Piri Piri m@ster
2004-06-29, 21:54:08
Halo Leute!
Ich brauche ein Script, dass nach Aufruf eine beliebige Datei aus einem angegeben Verzeichnis in ein zweites angegebenes Verzeichnis verschiebt.
Kann man das mit einer Batch Datei verwirklichen? Das wäre das beste.
Ansonsten, hab ihr irgendeine Idee?

mfg
Piri

Wanginator
2004-06-30, 12:25:50
Du kannst z.B. folgendes versuchen:

Bei WinXP im Ordner C:\Dokumente und Einstellungen\<User>\SendTo eine Verknüpfung von dem Ordner in den du verschieben willst einfügen. Dann kannst du bei jeder Datei mit Rechtsklick->Senden an die Datei in den Ordner kopieren. Musst dann halt nur noch die Originaldatei löschen. Versuchs mal.

Lokadamus
2004-06-30, 12:40:24
mmm...

Wenn ich ihn richtig verstanden habe, will er es mit zufälligen Dateien machen, nur hört es sich für mich bald so an, als ob er jemanden nerven will, darum sag ich nicht viel dazu. Unter c wäre es kein Problem, mit einer Batch wüsste ich nicht, das man dort eine zufällige Datei verschieben lassen kann ...

Piri Piri m@ster
2004-06-30, 15:29:09
@Lokadamus
Ich weiß. Als ich danach bei Google gesucht habe, wurden mir etliche Einträge über Viren ausgespuckt. Ich möchte aber wirklich niemanden damit nerven! Versprochen!
Ich schieße in bestimmten Abständen Screenshots von meinem Bildschirm und lasse sie automatisch abspeichern. Sozusagen als "Screenhistory". Das Problem ist nun, das dieser Ordner langsam ziemlich groß wird und ich mich nicht entscheiden kann, welche Datei ich davon behalten und welche ich löschen möchte. Deshalb möchte ich die Dateien automatisch und zufällig verschieben.
Glaub mir Lokadamus. Ich will wirklich niemanden nerven. Versprochen! :)

Sephiroth
2004-06-30, 18:16:15
Da hast du dein Script.

Da das bei dir ja immer die gleichen beiden Ordner sind, hab ich es mir leicht gemacht.

Kopiere das Script, gib die Pfade an (Pfad_From und Pfad_To; bitte Hinweise beachten) und speichere das ganze als .vbs Datei ab(wo ist egal). Falls du zusätzlich noch eine Meldung haben möchtest, welche Datei verschoben wurde, dann entfernde noch das REM in der 3. Zeile von unten.


'*****************************************************
' File: move random file.vbs
' Autor: Sephirot
'
' Verschiebt eine zufällig ausgewählte Datei aus Verzeichnis
' Pfad_From im das Verzeichnis Pfad_To
'*********************************************************
OPTION Explicit
DIM WSHShell, FSO
DIM oFolder, oFile, File
DIM i, RndFileNr, DateiX, Datei()

CONST Pfad_From = "" 'Verzeichnis, aus der die Datei verschoben werden soll.
CONST Pfad_To = "" 'Ziel-Verzeichnis angeben

SET WSHShell = WScript.CreateObject("WScript.Shell")
SET FSO = WScript.CreateObject("Scripting.FileSystemObject")


IF (NOT FSO.FolderExists(Pfad_From)) OR (NOT FSO.FolderExists(Pfad_To)) then
WScript.Echo "Eines der Verzeichnisse existiert nicht!" & vbCRLF & vbCRLF & "Aktion abgebrochen"
WScript.Quit
END IF

i = -1
SET oFolder = FSO.GetFolder(Pfad_From)
SET oFile = oFolder.Files
FOR Each DateiX In oFile
i= i + 1
ReDim Preserve Datei(i)
Datei(i) = DateiX.Path
NEXT
SET oFile = NOTHING
SET oFolder = NOTHING

RANDOMIZE
RndFileNr = Int(i*Rnd)
File = Datei(RndFileNr)
ERASE Datei

SET oFolder = FSO.GetFolder(Pfad_To)
SET oFile = FSO.GetFile(File)
oFile.Move (oFolder & "\" & oFile.Name)

REM WScript.Echo "Datei """ & oFile.Name & """ nach """ & Pfad_To & """ verschoben."
'REM am Anfang der obigen Zeile entfernen, falls du noch eine Meldung haben möchtest welche Datei wohin verschoben wurde.
SET oFile = NOTHING
SET oFolder = NOTHING

Piri Piri m@ster
2004-06-30, 22:09:02
Wow Sephirot! Vielen, vielen Dank! Es funktioniert ganz vorzüglich.
Hut ab!

Piri Piri m@ster
2004-06-30, 22:39:30
Noch mal kurz eine Frage: Was müsste ich in dem Script ändern um mehrere Dateien auf einmal zu verschieben?

Sephiroth
2004-06-30, 23:12:11
Original geschrieben von Piri Piri m@ster
Noch mal kurz eine Frage: Was müsste ich in dem Script ändern um mehrere Dateien auf einmal zu verschieben?
so
Ich hab bei der obigen Version nochwas geändert, daß mir auffiel beim testen dieser neuen Variante! Bitte ändere deine alte Version entsprechend.

'*****************************************************
' File: move random files.vbs
' Autor: Sephirot
'
' Verschiebt zufällig ausgewählte Dateien aus Verzeichnis
' Pfad_From in das Verzeichnis Pfad_To
'*********************************************************
OPTION Explicit
DIM WSHShell, FSO
DIM oFolder, oFile, File
DIM i, k, Text, RndFileNr, DateiX, Datei()

CONST Pfad_From = "" 'Verzeichnis, aus der die Datei verschoben werden soll.
CONST Pfad_To = "" 'Ziel-Verzeichnis angeben

SET WSHShell = WScript.CreateObject("WScript.Shell")
SET FSO = WScript.CreateObject("Scripting.FileSystemObject")


IF (NOT FSO.FolderExists(Pfad_From)) OR (NOT FSO.FolderExists(Pfad_To)) then
WScript.Echo "Eines der Verzeichnisse existiert nicht!" & vbCRLF & vbCRLF & "Aktion abgebrochen"
WScript.Quit
END IF

FOR k = 1 TO 2 'die 2 durch die anzahl der dateien, die du verschieben lassen möchtest, ersetzen.
i = -1
SET oFolder = FSO.GetFolder(Pfad_From)
SET oFile = oFolder.Files
FOR Each DateiX In oFile
i= i + 1
ReDim Preserve Datei(i)
Datei(i) = DateiX.Path
NEXT
SET oFile = NOTHING
SET oFolder = NOTHING

RANDOMIZE
RndFileNr = Int(i*Rnd)
File = Datei(RndFileNr)
ERASE Datei

SET oFolder = FSO.GetFolder(Pfad_To)
SET oFile = FSO.GetFile(File)
oFile.Move (oFolder & "\" & oFile.Name)
Text = Text & """" & oFile.Name & """" & vbCRLF
SET oFile = NOTHING
SET oFolder = NOTHING
NEXT
REM WScript.echo "folgende Dateien wurden nach """ & Pfad_To & """ verschoben:" & vbCRLF & Text
'REM am Anfang der obigen Zeile entfernen, falls du noch eine Meldung haben möchtest welche Dateien wohin verschoben wurde.

Piri Piri m@ster
2004-07-01, 14:56:55
Da ist noch ein Fehler drin. Die Varible k (in Zeile 25) ist nicht definiert...

Gast
2004-07-01, 15:26:55
Original geschrieben von Piri Piri m@ster
Da ist noch ein Fehler drin. Die Varible k (in Zeile 25) ist nicht definiert...
Dann schreib sie doch einfach hinter das i in der Zeile die mit DIM anfängt:
DIM i, k, ...

Piri Piri m@ster
2004-07-01, 15:31:56
Ahh. Muss zu meiner Verteidigung sgaen, dass ich noch nie ein vbs script programmiert habe.
Könnt ihr mir ein Tutorial empfehlen?

Sephiroth
2004-07-01, 17:08:42
Original geschrieben von Piri Piri m@ster
Da ist noch ein Fehler drin. Die Varible k (in Zeile 25) ist nicht definiert...
gefixt. Habe auch gleich die Meldung geändert, jetzt kommt zum Schluß eine Zusammenfassung für alle Dateien und nicht immer bei jeder Datei eine Meldung.