Batch soll Variablen ignorieren (AppData als Ordner)
Kopieren eines Ordners samt Unterordner in ein Verzeichnis mit Namen %AppData% (keine Variable!)
Hallo,
ich habe eine Anwendung mit Thinstall portabel erstellt und möchte diese nun mithilfe einer Batch mit der lokal installierten Version des Programms aktualisieren. Das Problem ist das Thinstall einen Ordner mit Namen %AppData% erstellt, das ja standardmäßig als Variable für C:\Dokumente und Einstellungen\User\Anwendungsdaten steht. Dies habe ich mittels des Befehls
[CODE] set AppData= [/CODE]
temporär deaktiviert. Wenn ich nun den Ordner mit dem Befehl
[CODE] xcopy "C:\Dokumente und Einstellungen\Denis\Anwendungsdaten\Google\GoogleEarth\*.*" "B:\PortableApps\Google\Google Earth\%AppData%\Google\GoogleEarth\" /y /I /H /Q /C /E [/CODE]
kopieren will klappt dies auch ohne Probleme. In einer Batch allerdings wird der Befehl (mit vorangestelltem "set AppData=") zwar als erledigt (3 Dateien kopiert) angezeigt, es wird allerdings nichts kopiert. Gebe ich den Befehl (mit vorangestelltem "set AppData=") per Hand in die Eingabeaufforderung ein klappt ales problemlos! Ich habe auch bereits den Umweg über nachträgliches Umbenennen des Ordners probiert:
[CODE] rmdir /S /Q "B:\PortableApps\Google\Google Earth\%AppData%\"
xcopy "C:\Dokumente und Einstellungen\Denis\Anwendungsdaten\Google\GoogleEarth\*.*" "B:\PortableApps\Google\Google Earth\AppData\Google\GoogleEarth\" /y /I /H /Q /C /E
ren "B:\PortableApps\Google\Google Earth\AppData" "%AppData%" [/CODE]
Leider wieder das selbe Spiel...per Hand klappt alles wunderbar, in der Batch geschieht überhaupt nichts.
Ich hoffe jemand kann mir sagen woran das liegen könnte bzw einen Lösungsvorschlag vorschlagen!
Danke,
mfg, Denis
Hallo,
ich habe eine Anwendung mit Thinstall portabel erstellt und möchte diese nun mithilfe einer Batch mit der lokal installierten Version des Programms aktualisieren. Das Problem ist das Thinstall einen Ordner mit Namen %AppData% erstellt, das ja standardmäßig als Variable für C:\Dokumente und Einstellungen\User\Anwendungsdaten steht. Dies habe ich mittels des Befehls
[CODE] set AppData= [/CODE]
temporär deaktiviert. Wenn ich nun den Ordner mit dem Befehl
[CODE] xcopy "C:\Dokumente und Einstellungen\Denis\Anwendungsdaten\Google\GoogleEarth\*.*" "B:\PortableApps\Google\Google Earth\%AppData%\Google\GoogleEarth\" /y /I /H /Q /C /E [/CODE]
kopieren will klappt dies auch ohne Probleme. In einer Batch allerdings wird der Befehl (mit vorangestelltem "set AppData=") zwar als erledigt (3 Dateien kopiert) angezeigt, es wird allerdings nichts kopiert. Gebe ich den Befehl (mit vorangestelltem "set AppData=") per Hand in die Eingabeaufforderung ein klappt ales problemlos! Ich habe auch bereits den Umweg über nachträgliches Umbenennen des Ordners probiert:
[CODE] rmdir /S /Q "B:\PortableApps\Google\Google Earth\%AppData%\"
xcopy "C:\Dokumente und Einstellungen\Denis\Anwendungsdaten\Google\GoogleEarth\*.*" "B:\PortableApps\Google\Google Earth\AppData\Google\GoogleEarth\" /y /I /H /Q /C /E
ren "B:\PortableApps\Google\Google Earth\AppData" "%AppData%" [/CODE]
Leider wieder das selbe Spiel...per Hand klappt alles wunderbar, in der Batch geschieht überhaupt nichts.
Ich hoffe jemand kann mir sagen woran das liegen könnte bzw einen Lösungsvorschlag vorschlagen!
Danke,
mfg, Denis
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 91655
Url: https://administrator.de/contentid/91655
Ausgedruckt am: 15.11.2024 um 02:11 Uhr
8 Kommentare
Neuester Kommentar
Moin DenisXP,
willkommen im Forum.
<OT>
"... einen Lösungsvorschlag vorschlagen!" ist eine Formulierung, die bei mir immer Konzentrationsstörungen hervorruft und von wichtigeren Problemen ablenkt. Dann träum ich immer von weißen Schimmeln und schwarzen Raben....
</OT>
Da Du nicht dauerhaft eine Variable mit einem LEER-Wert als Umgebungsvariable hinterlegen kannst, kannst Du nur eine Variable %AppData% MIT einem Wert (Meinetwegen c:\temp oder D:\Appz) definieren.
Also quäl Dich nicht mit einen "SET Appdata=" ... das kann nicht funktionieren.
Grüße
Biber
willkommen im Forum.
<OT>
"... einen Lösungsvorschlag vorschlagen!" ist eine Formulierung, die bei mir immer Konzentrationsstörungen hervorruft und von wichtigeren Problemen ablenkt. Dann träum ich immer von weißen Schimmeln und schwarzen Raben....
</OT>
Da Du nicht dauerhaft eine Variable mit einem LEER-Wert als Umgebungsvariable hinterlegen kannst, kannst Du nur eine Variable %AppData% MIT einem Wert (Meinetwegen c:\temp oder D:\Appz) definieren.
Also quäl Dich nicht mit einen "SET Appdata=" ... das kann nicht funktionieren.
Grüße
Biber
(OT)@ Biber
Zitat Pit Brat -> "Deal zu Dealen..."
Was ich an dem Konstrukt nicht verstehe - ein Ordner names %Appdata% soll erzeugt werden.
Wenn denn die Variable leer ist - kann ich mir nicht vorstellen, daß nun %Appdata% nicht mehr als Variable erkannt wird, sondern ein Ordner mit diesem Namen erzeugt wird.
Von daher glaube ich nicht (W2k Selbsttest) daß sein Konstrukt überhaupt funktioniert.
"... einen Lösungsvorschlag vorschlagen!"
Kennst du Snatch - Schweine und Diamanten?Zitat Pit Brat -> "Deal zu Dealen..."
Was ich an dem Konstrukt nicht verstehe - ein Ordner names %Appdata% soll erzeugt werden.
Wenn denn die Variable leer ist - kann ich mir nicht vorstellen, daß nun %Appdata% nicht mehr als Variable erkannt wird, sondern ein Ordner mit diesem Namen erzeugt wird.
Von daher glaube ich nicht (W2k Selbsttest) daß sein Konstrukt überhaupt funktioniert.
Moin T-Mo,
klar, damit hast Du recht.
Einen Ordner namens %varname% lässt sich natürlich nur direkt vom CMD-Prompt anlegen, nicht aus einer Batchdatei heraus.
Insofern warte ich auch mit den anderen auf Erläuterung, wieso denn wohl diese Ordner plötzlich da ist (bzw. wer oder was den anlegt).
Grüße
Biber
[Edit] P.S. Kann natürlich sein, dass sich aus dem Batch heraus so ein Ordner %varname% anlegen/ansprechen lässt, wenn die %-Zeichen maskiert oder gedoppelt werden...
...aber Hey! - haben wir nicht schon mit M$ genug Probleme, wenn wir die vorgesehenen Pfade beschreiten?
[/Edit]
klar, damit hast Du recht.
Einen Ordner namens %varname% lässt sich natürlich nur direkt vom CMD-Prompt anlegen, nicht aus einer Batchdatei heraus.
Insofern warte ich auch mit den anderen auf Erläuterung, wieso denn wohl diese Ordner plötzlich da ist (bzw. wer oder was den anlegt).
Grüße
Biber
[Edit] P.S. Kann natürlich sein, dass sich aus dem Batch heraus so ein Ordner %varname% anlegen/ansprechen lässt, wenn die %-Zeichen maskiert oder gedoppelt werden...
...aber Hey! - haben wir nicht schon mit M$ genug Probleme, wenn wir die vorgesehenen Pfade beschreiten?
[/Edit]
Also gut,
falls ich mich in meinem P.S. zu unverständlich ausgedrückt haben sollte...
Im Batch dann so maskieren:
Dennoch sollte eher eingegriffen werden... bevor überhaupt so eine Ordner namens %AppData% (buchstabengetreu) angelegt wird. Das kann doch nicht das erwünschte und vorgesehene Verhalten von Thinstall sein, oder?
Grüße
Biber
falls ich mich in meinem P.S. zu unverständlich ausgedrückt haben sollte...
Im Batch dann so maskieren:
rmdir /S /Q "B:\USB\DD\PortableApps\Google\Google Earth\^%AppData^%\"
xcopy ....
ren "B:\PortableApps\Google\Google Earth\AppData" ^%AppData^%
Dennoch sollte eher eingegriffen werden... bevor überhaupt so eine Ordner namens %AppData% (buchstabengetreu) angelegt wird. Das kann doch nicht das erwünschte und vorgesehene Verhalten von Thinstall sein, oder?
Grüße
Biber
Moin DenisXP.
Ich halte -um es nochmals zu schreiben- es für die falsche Strategie, es als gottgegeben hinzunehmen, dass so ein Verzeichnis %AppData% angelegt wird und es gegen alle Widerstände ansprechen zu wollen.
Ich habe es aber, da es Dir offensichtlich ein Herzenswunsch zu sein scheint, eben noch mal getestet.
So ginge es:
Am CMD-Prompt ließe sich ein Verzeichnis %einTest% anlegen mit
In einem Batch kann iich dieses ansprechen mit (z.b.)
Die Maskierung der Prozentzeichen sollte also in diesem Fall mit doppelten Prozentzeichen statt mit Caret erfolgen.
Grüße
Biber
Ich verstehe übrigens überhaupt nicht warum die Befehle in der gleichen Reihenfolge eingegeben in der CMD ohne Probleme laufen und in der Batch nicht funktionieren
siehe BatchTutII unter Punkt cIch halte -um es nochmals zu schreiben- es für die falsche Strategie, es als gottgegeben hinzunehmen, dass so ein Verzeichnis %AppData% angelegt wird und es gegen alle Widerstände ansprechen zu wollen.
Ich habe es aber, da es Dir offensichtlich ein Herzenswunsch zu sein scheint, eben noch mal getestet.
So ginge es:
Am CMD-Prompt ließe sich ein Verzeichnis %einTest% anlegen mit
Md %eintest%
dir %%einTest%%
-- oder --
rd x:\bla\%%einTest%%
Grüße
Biber