psycho82 Geschrieben 29. Oktober 2009 Geschrieben 29. Oktober 2009 Hallo an alle, ich mochte eine Datei via batch script auf den Benutzerdesktop kopieren. Dies soll eine Erweiterung für ein Loginscript werden. Des bedeutet es wird von jedem Benutzer geladen welcher sich am Rechner anmeldet. Nun meine Frage, wie ich das anstelle ist mir im Großen und Ganzen schon klar. ICh möchte anhand einer IF-Anweisung abfragen welches Betriebssystem installiert ist, entweder Vista oder XP. Dann soll die Datei in den entsprechenden Ordner kopiert werden. Scriptablauf soll so aussehen: - START des Scripts - Abfrage nach OS - IF-Anweisung welche nach OS entscheidet - kopieren der Datei - Script ENDE Wenn ich eine Datei in den ProgrammeOrdner des jeweiligen OS kopieren wollte, wäre es deutlich einfacher, aber für den Desktop gibt es keine Umgebungsvariable wie %PROGRAMFILES%, oder doch? Danke für eure Hilfe Zitieren
Kappa Geschrieben 29. Oktober 2009 Geschrieben 29. Oktober 2009 Moin, du kannst den Ordner "...\all users\Desktop" als Ziel nutzen. Gruß Zitieren
psycho82 Geschrieben 29. Oktober 2009 Autor Geschrieben 29. Oktober 2009 Moin, du kannst den Ordner "...\all users\Desktop" als Ziel nutzen. Gruß Das Problem bei deiner Lösung liegt darin, dass sich die Pfade von "all users" unter XP und Vista unterscheiden. Zitieren
erax Geschrieben 29. Oktober 2009 Geschrieben 29. Oktober 2009 probiers mal so: @echo off ver | find "Version 5.0" >nul if not errorlevel 1 goto W2000 ver | find "Version 5.2" >nul if not errorlevel 1 goto WXP ver | find "Version 6.0" >nul if not errorlevel 1 goto WVista ver | find "Version 6.1" >nul if not errorlevel 1 goto W7 :W2000 xcopy /Y /C c:\temp\test.txt "c:\Dokumente und Einstellungen\All Users\Desktop\test.txt" goto end :WXP xcopy /Y /C c:\temp\test.txt "c:\Dokumente und Einstellungen\All Users\Desktop\test.txt" goto end :WVista xcopy /Y /C c:\temp\test.txt C:\Users\Default\Desktop\test.txt goto end :W7 xcopy /Y /C c:\temp\test.txt C:\Users\Default\Desktop\test.txt goto end :end pause Zitieren
psycho82 Geschrieben 29. Oktober 2009 Autor Geschrieben 29. Oktober 2009 probiers mal so: @echo off ver | find "Version 5.0" >nul if not errorlevel 1 goto W2000 ver | find "Version 5.2" >nul if not errorlevel 1 goto WXP ver | find "Version 6.0" >nul if not errorlevel 1 goto WVista ver | find "Version 6.1" >nul if not errorlevel 1 goto W7 :W2000 xcopy /Y /C c:\temp\test.txt "c:\Dokumente und Einstellungen\All Users\Desktop\test.txt" goto end :WXP xcopy /Y /C c:\temp\test.txt "c:\Dokumente und Einstellungen\All Users\Desktop\test.txt" goto end :WVista xcopy /Y /C c:\temp\test.txt C:\Users\Default\Desktop\test.txt goto end :W7 xcopy /Y /C c:\temp\test.txt C:\Users\Default\Desktop\test.txt goto end :end pause Brilliante Lösung, funktioniert. Allerdings nicht unter Vista, da die Benutzerkontensteuerung dazwischen funkt. Zugriff verweigert! Zitieren
RipperFox Geschrieben 29. Oktober 2009 Geschrieben 29. Oktober 2009 (bearbeitet) ICh möchte anhand einer IF-Anweisung abfragen welches Betriebssystem installiert ist, entweder Vista oder XP. Dann soll die Datei in den entsprechenden Ordner kopiert werden. Warum brauchst Du die OS Abfrage überhaupt? Ein xcopy /Y \\server\file.txt %HOMEPATH%\Desktop > NIL: tut's doch? Grüße Ripper Edit: In Batches ggf. %%HOMEPATH%% verwenden Bearbeitet 29. Oktober 2009 von RipperFox %% im Batch statt % Zitieren
erax Geschrieben 29. Oktober 2009 Geschrieben 29. Oktober 2009 Brilliante Lösung, funktioniert. Allerdings nicht unter Vista, da die Benutzerkontensteuerung dazwischen funkt. Zugriff verweigert! rechtsklick --> ausführen als administrator sollte das problem beheben, ansonsten siehe RipperFox's Lösung Zitieren
psycho82 Geschrieben 29. Oktober 2009 Autor Geschrieben 29. Oktober 2009 @ripperfox Genau diese Umgebungsvariable habe ich anfangs gesucht (%HOMEPATH%), mit dieser Variable funktionierts selbstverständlich auch ohne OS Abfrage. Sehr gute Lösung und funktioniert auch. @erax Hab in der Zwischenzeit deine Lösung angepasst, dann hats auch ohne Adminrechte, allerdings nur für den jeweiligen Benutzer funktioniert. Aber das reich tmir als Lösuung auch. Ich beide Lösungen als korrekt und hilfreich einstufen. Danke GELÖST! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.