VBS: Probleme mit if exist

Salutchen zusammen

also mein problem:
ich will meine bilder vom F:\Desktop\ nach F:\Bilder verschieben. da ich aber immer im internet auf irgend welche bilder treffe, können dies jpg, jpeg, gif, png sein. nun hab ich n script geschrieben. aber ich bring das nur so hin, das es mir die jpg verschibt…

irgendwie stell ich mich grad voll dumm her…aber ja xD

kann mir vieleicht kurz jemand ein script schreiben mit if exist, damit ich if exist nachvollziehen kann?? wär total nett!

ich will meine bilder vom F:\Desktop\ nach F:\Bilder
verschieben. da ich aber immer im internet auf irgend welche
bilder treffe, können dies jpg, jpeg, gif, png sein. nun hab
ich n script geschrieben. aber ich bring das nur so hin, das
es mir die jpg verschibt…

Hallo Pascal,

zeige doch mal den Code.

In einer Dos-Batch würde das s.ä. aussehen:

move /y F:\Desktop*.jpg F:\Bilder
move /y F:\Desktop*.jpeg F:\Bilder
move /y F:\Desktop*.gif F:\Bilder
move /y F:\Desktop*.png F:\Bilder

ggfs. das „/y“ weglassen, dann wird nix überschrieben

Oder evtl. s.ä.

cd f:
cd F:\Desktop
for %%A in (*.png *.gif *.jpg *.jpeg) do if not exist %%A move %%A F:\bilder

In Vbs weiß ich nicht was es da so gibt.

Gruß
Reinhard

DIM find, move, pic

Desktop = „F:\Desktop*.gif“
Bilder = „F:\Bilder“

dim fso
set fso = CreateObject(„Scripting.FileSystemObject“)
If Fileexist „F:\Desktop*.jpg“ Then
fso.MoveFile „F:\Desktop*.jpg“, „F:\Bilder“
If Fileexist „F:\Desktop*.gif“
Then fso.MoveFile „F:\Desktop*.gif“, „F:\Bilder“
If Fileexist „F:\Desktop*.jpeg“
Then fso.MoveFile „F:\Desktop*.jpeg“, „F:\Bilder“
If Fileexist „F:\Desktop*.png“ Then
fso.MoveFile „F:\Desktop*.png“, „F:\Bilder“

also ja…auf batch hab ichs schon hingekriegt…aber will das umbedingt auch mit vbs…aber i wie funzts eben net

Hallo Pascal,

bist du im „If Exist“ Fan-Club? :smile:)
Ich sehe hier dazu keine Notwendigkeit, außer man will wissen ob die entsprehende Datei im Zielverzeichnis schon vorhanden ist.
Dann stellt sich die Frage überschreiben oder nicht, umbenennen usw.

Probiers mal so (ungetestet):

Set fso = CreateObject(„Scripting.FileSystemObject“)
fso.MoveFile F:\Desktop*.jpg, F:\Bilder
fso.MoveFile F:\Desktop*.gif, F:\Bilder
fso.MoveFile F:\Desktop*.jpeg, F:\Bilder
fso.MoveFile F:\Desktop*.png, F:\Bilder

Gruß
Reinhard

Hallo Wyss,

ich kenne mich weniger mit VBS aus. Aber so gross wird der Unterschied schon nicht zu VB sein.

Sorry aber wenn ich mir das anschau, wird mir schlecht :wink:
Erstens Fileexists ist wo definiert? Fileexists ist sicherlich eine Methode aus der Klasse fso, die du definiert hast. Ergo musst du sie auch angeben!

Sprich Klassennamen.Method(Parameter)

In Deinem Falle FSO.Fileexists

Auch hast du Fileexist geschrieben! Dies ist keine Methode aus der Klasse. Schreibfehler?

Dann gehen wir mal weiter zu deinem IF Konstrukt.

IF Konstrukte können wie folgt ausschauen

IF Variable Vergleichsoperator Bedingung then ... DeineAktion

IF Variable Vergleichsoperator Bedingung then 
Deine Aktion 'Wird ausgeführt wenn die Bedingung erfüllt ist
End IF

IF Variable Vergleichsoperator Bedingung then 
Deine Aktion ' Wird ausgeführt wenn die Bedingung erfüllt ist
Else
Deine Aktion 'Wird ausgeführt wenn die Bedingung NICHT erfüllt ist
End if

IF Variable Vergleichsoperator Bedingung then 
'Deine Aktion
ELSEIF Variable Vergleichsoperator Bedingung then
Deine Aktion
ELSE
Deine Aktion
End If

Passe mal entsprechend deinen Source an, danach sollte es klappen
MfG Alex

Hallo pascal,

probiers mal so

Dim fso, files, file
Set fso = CreateObject("scripting.FileSystemObject")
Set files = fso.getFolder("C:\Temp\test1").files
For Each file In files
 If file.Name Like "\*.jpg" Or file.Name Like "\*.jpeg" Or file.Name Like "\*.png" Or file.Name Like "\*.gif" Then
 fso.MoveFile file, "C:\Temp\test2\"
End If
Next file

Gruß
Reinhard