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

VBS Probleme

Frage Entwicklung VB for Applications

Mitglied: retz12

retz12 (Level 1) - Jetzt verbinden

25.05.2011 um 13:23 Uhr, 3623 Aufrufe, 10 Kommentare

Werte Programmierer,
Ich bin nicht so der ober Programmierer, deshalb stehe ich diesmal wieder mal auf der Leitung!
Ich möchte mit dem Script überprüfen, ob eine gewisse Datei (%username%.htm) in einem gewissen Laufwerk vorhanden ist.
Wenn die Datei vorhanden ist, dann soll überprüft werden, ob ein gewisser Ordner vorhanden ist, wenn dieser vorhanden ist, dann soll er die gefundene Datei (%username%.htm) in diesen Ordner kopieren, wenn der Ordner nicht vorhanden ist, dann den Ordner (test) erstellen und dann wieder die Datei in den Ordner Test kopieren!
Leider schaffe ich es nicht das in ein vernünftiges Script zu packen.

Anbei mein Script

01.
' *** Initialze objects *** 
02.
Set WSHShell = WScript.CreateObject("WScript.Shell") 
03.
Set fs = CreateObject("Scripting.filesystemobject") 
04.
 
05.
' *** aktualisieren *** 
06.
	If fs.Fileexists(wshshell.ExpandEnvironmentStrings("D:\%username%.htm")) goto :copy 
07.
	End If 
08.
:copy	 
09.
	If fs.Folderxists(wshshell.ExpandEnvironmentStrings("D:\test")) = true then 
10.
		fs.CopyFile wshshell.ExpandEnvironmentStrings("D:\%username%.htm"), wshshell.ExpandEnvironmentStrings("D:\test\%username%.htm") 
11.
	else 
12.
		fs.CreateFolder wshshell.ExpandEnvironmentStrings("D:\test") 
13.
		fs.CopyFile wshshell.ExpandEnvironmentStrings("D:\%username%.htm"), wshshell.ExpandEnvironmentStrings("D:\test\%username%.htm") 
14.
	End If 
15.
	End If
Mitglied: MrTrebron
25.05.2011 um 13:54 Uhr
Hi

probier mal
01.
 
02.
' *** Initialze objects *** 
03.
Set WSHShell = WScript.CreateObject("WScript.Shell") 
04.
Set fs = CreateObject("Scripting.filesystemobject") 
05.
 
06.
' *** aktualisieren *** 
07.
	If fs.Fileexists(wshshell.ExpandEnvironmentStrings("D:\%username%.htm")) Then 
08.
			If fs.Folderexists("D:\test") = true then 
09.
			fs.CopyFile wshshell.ExpandEnvironmentStrings("D:\%username%.htm"), wshshell.ExpandEnvironmentStrings("D:\test\%username%.htm") 
10.
		Else 
11.
			fs.CreateFolder wshshell.ExpandEnvironmentStrings("D:\test") 
12.
			fs.CopyFile wshshell.ExpandEnvironmentStrings("D:\%username%.htm"), wshshell.ExpandEnvironmentStrings("D:\test\%username%.htm") 
13.
		End If 
14.
	End If
Gruß
Norbert
Bitte warten ..
Mitglied: retz12
25.05.2011 um 14:28 Uhr
Hi,
Danke für die rasche Rückmeldung.
Es funktioniert wirklich - Vielen Dank

sieht eigentlich eh ganz einfach aus, nur bin ich nicht darauf gekommen, wie ich es lösen könnte.

Danke nochmal
Bitte warten ..
Mitglied: retz12
27.05.2011 um 17:00 Uhr
Ich bin heute auf ein Problem gekommen!!
Es wird nämlich beim 2.mal aufrufen der Datei eine Fehlermeldung ausgegeben, dass es die Datei schon einmal gibt.
Fehler tritt auf in Zeile 11 im oberen Script!!
Woran kann das liegen.

So wie es aussieht probiert er den Ordner nochmals anzulegen, jedoch ist dieser schon vorhanden.

Ich würde nochmal um deine / Eure hilfe ersuchen.
Danke
Bitte warten ..
Mitglied: MrTrebron
27.05.2011 um 17:13 Uhr
Hi

ich kann den Fehler nicht Nachstellen.

Hast du noch was im Script verändert?

Gruß
Norbert
Bitte warten ..
Mitglied: retz12
27.05.2011 um 17:23 Uhr
Nein habe ich nicht.
Ich habe nur die Pfade geändert, da es im Netzwerk läuft und bei jedem Anmelden die Datei überschrieben werden soll.
Die Datei wird von einem freigegebenen Netzlaufwerk ins lokale Userverzeichnis kopiert!
Der Fehler tritt auf, wenn der Ordner schon vorhanden ist! Auch wenn ich die Dabei im Ordner lösche, kommt der Fehler.
Wenn ich den Ordner lösche, dann funktioniert es wieder.
Keine Ahnung, warum das nicht funktionert.

Bei mir lokal zu hause nicht im Netzwerk funktioniert das einwandfrei.
Bitte warten ..
Mitglied: bastla
27.05.2011 um 17:28 Uhr
Hallo retz12 und MrTrebron!

Eine etwas wartungsfreundlichere Variante - vielleicht geht's ja damit :
01.
' *** Initialze objects *** 
02.
Set WSHShell = WScript.CreateObject("WScript.Shell") 
03.
Set fs = CreateObject("Scripting.filesystemobject") 
04.
 
05.
SourceFile = WSHShell.ExpandEnvironmentStrings("D:\%username%.htm") 
06.
TargetFolder = "D:\test\" 
07.
 
08.
' *** aktualisieren *** 
09.
If Right(TargetFolder, 1) <> "\" Then TargetFolder = TargetFolder & "\" 
10.
If fs.FileExists(SourceFile) Then 
11.
    If Not fs.FolderExists(TargetFolder) Then fs.CreateFolder TargetFolder 
12.
    fs.CopyFile SourceFile, TargetFolder 
13.
End If
Grüße
bastla
Bitte warten ..
Mitglied: retz12
27.05.2011 um 17:49 Uhr
Irgendwo ist in diesem Script auch noch ein Fehler

zeile 11
Char 47

Pfad nicht gefunden.


Genau genommen möchte ich folgenden Order erstellen, bzw. die Datei in den Ordner kopieren
C:\Users\%username%\AppData\Roaming\Microsoft\Signatures

Jedoch lässt er mir das nur einmal zu. Beim überschreiben kommt dann die Fehlermeldung!
Bitte warten ..
Mitglied: bastla
27.05.2011 um 20:57 Uhr
Hallo retz12!

Vorweg: Für den genannten Pfad sollte die Zeile 6
TargetFolder = WSHShell.ExpandEnvironmentStrings("%appdata%\Microsoft\Signatures")
lauten.
Nachvollziehbar wäre noch, wenn es den Ordner "Microsoft" nicht gäbe - dann würde tatsächlich der "Pfad nicht gefunden", allerdings müsste es den Fehler dann bereits beim erstmaligen (und jedem weiteren) Lauf des Scripts geben ...

Vorbeugen ließe sich dem etwa so:
01.
Set WSHShell = WScript.CreateObject("WScript.Shell") 
02.
Set fs = CreateObject("Scripting.filesystemobject") 
03.
 
04.
PathParts = Split(WSHShell.ExpandEnvironmentStrings("%appdata%\Microsoft\Signatures"), "\") 
05.
 
06.
TargetPath = PathParts(0) & "\" 
07.
For i = 1 To UBound(PathParts) 
08.
    TargetPath = TargetPath & PathParts(i) & "\" 
09.
    If Not fs.FolderExists(TargetPath) Then fs.CreateFolder TargetPath 
10.
Next
Grüße
bastla
Bitte warten ..
Mitglied: retz12
29.05.2011 um 10:05 Uhr
Hallo bastla,

Danke für die Hilfe beim Programmieren!!

Ich habs jetzt es fehlte nur der Zusatz "WSHShell.ExpandEnvironmentStrings" in der Zeile 6
Was bewirkt dieser Teil eigentlich?


Aber danke nochmal
Bitte warten ..
Mitglied: bastla
29.05.2011 um 10:13 Uhr
Hallo retz12!
Was bewirkt dieser Teil eigentlich?
Damit wird der Inhalt einer CMD-Systemvariablen (wie zB "%temp%" oder "%windir%) ausgelesen - für den Pfad "D:\test" wäre das nicht erforderlich, für einen Pfad unterhalb von "%appdata%" natürlich sehr wohl ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
VBS Script in eine Textdatei ausgeben (VBS mit Batch zusammenführen)
gelöst Frage von Luuke257Batch & Shell5 Kommentare

Hallo zusammen! Vorweg, ich bin absoluter neuling im Scripten, ich habe mir das alles nur so zusammengebastelt und versuche ...

Entwicklung
Chat via VBS
Frage von Questionmark93Entwicklung

Hey Community, wollte mal Fragen ob jmd auf die Schnelle ein VBS Skript hat das als "Chat" genutzt werden ...

VB for Applications
VBS - Vor- und Nachnamen auslesen
Frage von Ah3n0bar6usVB for Applications2 Kommentare

Ich könnte noch einmal (teuren) Rat gebracuhen. Ich versuche mir dem u.a. Script den kompletten Namen eines Nutzers vom ...

Batch & Shell
Variable aus VBS in Batch einlesen
gelöst Frage von racer1601Batch & Shell4 Kommentare

Hallo ich habe das Problem das ich die Variable "Ordner" aus einem VBS Script nicht in meine Batch bekomme. ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Sicherheitslücke Spectre und Meltdown: Status prüfen

Anleitung von Frank vor 3 StundenErkennung und -Abwehr

Nach all den Updates der letzten Woche sollte man unbedingt auch den Status prüfen, ob die Sicherheitslücke Spectre und ...

Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 1 TagMicrosoft Office9 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 1 TagDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 1 TagSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner15 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...

iOS
Einladung vom iphone kalender
Frage von jensgebkeniOS15 Kommentare

Hallo Gemeinschaft, folgendes Problem - immer wenn ich von meinem Iphone einen Termin einztrage und diesem Termin Teilnehmer zuweise, ...

Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...