Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

Umgebungsvariable bei WDH

becksking / 6 Antworten / Baumansicht Nickles

In diesem Script ist ein Fehler mit der Umgebungsvariable kann mir jemand sagen wie ich Umgebungsvariablen in einer WDH einbinden kann?

Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.GetFile("%windir%\\system32\\drivers\\etc\\hosts")
f1.Move ("%windir%\\system32\\drivers\\etc\\hostsx")

mfg becksking

bei Antwort benachrichtigen
becksking Nachtrag zu: „Umgebungsvariable bei WDH“
Optionen

sorry hab mich vertippt natürlich heißt es WSH

bei Antwort benachrichtigen
UselessUser becksking „sorry hab mich vertippt natürlich heißt es WSH“
Optionen

Hi becksking!

a) Die Umgebungsvariable scheinst du korrekt eingebunden zu haben.

b) Meinst du "GetFile" oder "GetFolder", weil dein Dateiname keine Endung hat?

c) Ich kenne im WSH nur "MoveFile" mit zwei Parametern: fso.MoveFile [Quelle], [Ziel]
"MoveFolder" gibt es nicht, du müsstest hier einen neuen Ordner erstellen und nach dem Transfer der Dateien den alten löschen.

Dein Bsp: f1.MoveFile "%windir%\system32\drivers\etc\hosts\Datei.xyz", "%windir%\system32\drivers\etc\hostsx\Datei.xyz"

Zu beachten sind dabei etwaige Absicherungen im Programmcode, falls Zieldateien schon oder Quelldateien nicht vorhanden oder schreibgeschützt sind, es kann dann zu Laufzeitfehlern kommen.

MfG

UselessUser

Rückmeldungen über Hilfestellungen sind sehr erwünscht:1. investiere ich Zeit, um dir zu antworten und2. möchte ich auch etwas dazulernen.
bei Antwort benachrichtigen
becksking Nachtrag zu: „Umgebungsvariable bei WDH“
Optionen

die host ist eine datei der script funktioniert ja mit so:

Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.GetFile("c:\winnt\system32\\drivers\\etc\\hosts")
f1.Move ("c:\winnt\system32\\drivers\\etc\\hostsx")

nur wenn ich die umgebungsvariable benutze nicht...

please help

bei Antwort benachrichtigen
UselessUser becksking „die host ist eine datei der script funktioniert ja mit so: Set fso CreateObject...“
Optionen

Hallo becksing!

Also ich habe auch noch ein paar Versuche gemacht, aber der WSH nimmt den allgemeinen Ausdruck %SystemRoot% bzw. %Windir% weder bei Win98 noch bei Win2k an. Das Auslesen über die Systemvariablen nutzt deshalb auch nichts, weil man den Pfad wieder entsprechend mit diesem Ausdruck zusammensetzen müsste.

Da greife ich den Vorschlag von Repi auf, du musst aber den konkreten Pfadnamen angeben, nachdem du das betreffende BS aus der Systemvariable ausgelesen hast, etwa so:

Set she = CreateObject("WScript.Shell")
Set env = she.Environment("System")
SysRoot = env("OS")
If SysRoot = "Windows_NT" Then
WinVerz = "C:\Winnt\"
[...]

Bei Win2k und WinXP wird "Window_NT" zurückgegeben, bei Win98 bleibt die Variable leer, WinME weiß ich nicht.

MfG

UselessUser

Rückmeldungen über Hilfestellungen sind sehr erwünscht:1. investiere ich Zeit, um dir zu antworten und2. möchte ich auch etwas dazulernen.
bei Antwort benachrichtigen
REPI becksking „Umgebungsvariable bei WDH“
Optionen

Hallo becksking !!

Schon mal versucht %windir% nicht mit in " " zusetzen ???
Kann es z.Z. leider nicht probieren !
Erst heute abend !!

Gruß



repi

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
REPI becksking „Umgebungsvariable bei WDH“
Optionen

Versuch doch im Script, das Environment, bzw. den Inhalt von %windir% auszulesen und in eine Scriptvariable zu setzen, mir der Du dann weiter arbeitest !?

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen