Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Batch soll Variablen ignorieren (AppData als Ordner)

Frage Microsoft Windows Tools

Mitglied: DenisXP

DenisXP (Level 1) - Jetzt verbinden

09.07.2008, aktualisiert 10.07.2008, 10757 Aufrufe, 8 Kommentare

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
Mitglied: Iwan
09.07.2008 um 14:26 Uhr
dumme Frage, aber warum muss die Variable unbedingt AppData heissen?
Bitte warten ..
Mitglied: Biber
09.07.2008 um 14:36 Uhr
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
Bitte warten ..
Mitglied: 60730
09.07.2008 um 16:15 Uhr
(OT)@ Biber
"... 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.
Bitte warten ..
Mitglied: Biber
09.07.2008 um 16:45 Uhr
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]
Bitte warten ..
Mitglied: Biber
09.07.2008 um 21:44 Uhr
Also gut,

falls ich mich in meinem P.S. zu unverständlich ausgedrückt haben sollte...
Im Batch dann so maskieren:
01.
rmdir /S /Q "B:\USB\DD\PortableApps\Google\Google Earth\^%AppData^%\" 
02.
 
03.
xcopy .... 
04.
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
Bitte warten ..
Mitglied: DenisXP
09.07.2008 um 21:54 Uhr
Hey und danke für die vielen Antworten in so kurzer Zeit!

Meine Formulierung war etwas unglücklich, fällt mir auch gerade auf...hatte das irgendwie im letzten Augenblick nochmal geändert!

Es geht darum ein mit der Thinstall Demo (http://www.thinstall.com/) portabel gemachtes Google Earth mit einem installierten zu synchronisieren. Thinstall stellt quasi eine Sandbox mit eigener Registry und eben auch eigenen Anwendungsdaten und benötigt deswegen eben unter anderem den Ordner %AppData%. Eben in diesem liegen nun einmal (merkwürdigerweise...) die Anwendungsdaten die ich synchronisieren will.

@Biber
Was genau meinst du denn mit dem maskieren?

Bzw da der Ordner nun einmal erstellt wird, gibts es andere Möglichkeiten diesen zu bearbeiten?

Danke,
mfg Denis


Edit:
Sehe gerade Biber hat das bereits genauer beschrieben, dann werd ich das doch gleich mal ausprobieren!

Edit2:
Klappt leider nicht...bereits beim Löschen kommt "Das System kann den angegebenen Pfad nicht finden", der erstellte Ordner schließlich wird einfach nur in "^" umbenannt...

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...
Bitte warten ..
Mitglied: Biber
10.07.2008 um 09:30 Uhr
Moin DenisXP.

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 c

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
01.
Md %eintest%
In einem Batch kann iich dieses ansprechen mit (z.b.)
01.
dir %%einTest%% 
02.
-- oder -- 
03.
rd x:\bla\%%einTest%%
Die Maskierung der Prozentzeichen sollte also in diesem Fall mit doppelten Prozentzeichen statt mit Caret erfolgen.

Grüße
Biber
Bitte warten ..
Mitglied: DenisXP
10.07.2008 um 21:18 Uhr
Wow, vielen Dank!
Es funktioniert! Mit doppeltem %% kann ich den Ordner direkt ansprechen und Dateien hineinkopieren, muss also überhaupt keinen Umweg über das Löschen, Neu erstellen und Umbenennen machen!

Und was den Herzenswunsch angeht, ich weiß nunmal nicht wie ich einem doch recht komplexen Programm wie Thinstall das Anlegen eines solchen Ordners abgewöhnen kann...insofern bleibt außer dem Nicht-Nutzen des Programms nur die Möglichkeit des Akzeptierens und somit Ansprechen des Ordners...zumindest in meinen Augen...

Nun funktioniert aber alles wie es soll, ich kann meine Dateien abgleichen und habe zudem noch einiges über Batch-Dateien gelernt (ernsthaft, ich werd mir das Tut demnächst mal komplett zu Gemüte führen)!

Vielen Dank,
wirklich ein klasse Forum hier!

mfg, Denis
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Per Batch Dateien in einen Ordner - ext. Festplatte übertragen (2)

Frage von tocksick zum Thema Batch & Shell ...

Batch & Shell
gelöst Per FTP-Shell oder Batch in ein unbekanten Ordner wechseln (8)

Frage von Ducky2 zum Thema Batch & Shell ...

Batch & Shell
Batch: .rar-Pakete automatisch Ordner erstellen und verschieben (2)

Frage von BowserMD zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...