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
Kommentar vom Moderator Biber am 14.11.2010 um 23:30:20 Uhr
Verschoben von "Tools & Utilities" nach "Batch & Shell".

Verknüpfung auf Desktop per Batch anlegen

Mitglied: batch-lernen

batch-lernen (Level 1) - Jetzt verbinden

14.11.2010, aktualisiert 18.10.2012, 20911 Aufrufe, 14 Kommentare

Hallo zusammen,

ich bin neu hier und hoffe ihr könnt mir helfen. Ich habe schon viel dazu gegoogelt aber nichts gefunden.

Folgendes Problem:

Ich habe eine Batch Datei die per Autostart beim Systemstart automatisch Ordner mit dem aktuellen Datum in einem bestimmten Ordnerpfad ablegt. Das sieht dann ungefähr so aus:

C:\Pfad und dann Ordner Jahr, Ordner Monat, Ordner Tag
Es werden also drei Ordner angelegt.

Ich möchte das eine Verknüpfung vom letzten Ordner (aktueller Tag) auf dem Desktop angelegt wird und dann auf z.B. "Heute" umbenannt wird. Genau das schaffe ich nicht. Im I-Net finde ich dazu nur VBS Lösungen. Ich hätte das aber gerne alles in einem BAT File.

Hier mein Code den ich bisher habe:
01.
del "%userprofile%\desktop\heute.lnk 
02.
Set yyyy=%DATE:~6,4% 
03.
MKDIR %yyyy% 
04.
cd %yyyy% 
05.
Set mm=%DATE:~3,2% 
06.
MKDIR %mm% 
07.
cd %mm% 
08.
Set dd=%DATE:~0,2% 
09.
MKDIR %dd%
Bitte nicht wundern. Ich möchte natürlich immer das vorher die alte Verknüpfung vom vorherigen Tag gelöscht wird. DEshalb der del Befehl.

Ich hoffe ihr könnt mir helfen.

Gruß
Der Batch Schüler


[Edit Biber] Codeformatierung.[/Edit]
Mitglied: bastla
14.11.2010, aktualisiert 18.10.2012
Hallo batch-lernen und willkommen im Forum!

Mit "native" Batch wirst Du's nicht gelöst bekommen - also entweder ein passendes Tool finden oder doch ein VBScript - lässt sich aber (siehe zB hier) in einen Batch einbetten, sodass Du trotzdem nur eine Datei zu verwalten brauchst ...

Grüße
bastla
Bitte warten ..
Mitglied: 60730
14.11.2010 um 21:34 Uhr
moin,

zwei,drei Tipps:

  • du kannst das erzeugen der Ordner einfacher haben...

01.
md %DATE:~6,4%\%DATE:~3,2%\%DATE:~0,2%
(wobei ich deinen Weg nur Beispielhaft nachgebaut habe, normalerweise hätte ich ein Laufwerk:\ davor geschrieben)

und deine andere Frage läßt sich auch anders einfacher lösen:

einfach einen simplen einzeiler schnippseln...
01.
Explorer /e,c:\%DATE:~6,4%\%DATE:~3,2%\%DATE:~0,2%
Hier gehts nicht ohne ein bemnanntes Laufwerk.

Und von dieser Batch erzeugst du dir einen Link zum draufklicken.

Btw: Tipp 3 wären die <Code> </Code> Blöcke, zwischen die ich meine (einzeiler) geschrieben habe, erstrecht bei mehrzeilern deutlich besser zu lesen

Gruß
Bitte warten ..
Mitglied: batch-lernen
15.11.2010 um 13:49 Uhr
OK danke erstmal. Dann such ich mir was als VBS.

Gruß
Bitte warten ..
Mitglied: bastla
15.11.2010, aktualisiert 18.10.2012
Hallo batch-lernen!

Nur interessehalber: Was spricht gegen die beiden präsentierten Ansätze (abgesehen davon, dass "was als VBS" in meinem Vorschlag - siehe Link - inkludiert wäre)?

Grüße
bastla
Bitte warten ..
Mitglied: batch-lernen
15.11.2010 um 15:19 Uhr
Hallo bastla.

Da hatte ich mich nicht richtig ausgedrückt. Ich bin deinem Vorschlag gefolgt und habe ein VBS erstellt und das in meine Batch eingebunden. Das geht auch super.

Jetzt steh ich nur noch vor dem Problem das im VBS ein fester Pfad angegeben ist auf den die Verknüpfung verweist. Ich wollte aber das der immer variabel also zum Ordner mit dem aktuellen Tag verweist.

Gruß
Bitte warten ..
Mitglied: bastla
15.11.2010 um 16:26 Uhr
Hallo batch-lernen!
... im VBS ein fester Pfad angegeben ist
Muss ja nicht:
01.
@echo off & setlocal 
02.
set "zielpfad=%userprofile%\Desktop" 
03.
 
04.
::Name der Verknüpfung (ohne ".lnk") 
05.
set "progtitel=Heute" 
06.
::Speicherort der Programmdatei (wird auch für "Ausführen in:" verwendet) 
07.
set "progdir=C:\Pfad\%date:~-4%\%date:~-7,2%\%date:~-10,2%" 
08.
set "progexe=" 
09.
::Kommentar 
10.
set "beschreibung=Erklärung eigentlich unnötig ..." 
11.
 
12.
::Bei Bedarf Ordner erstellen: 
13.
md "%zielpfad%" 2>nul 
14.
md "%progdir%" 2>nul 
15.
 
16.
::temporäres VBScript erzeugen ... 
17.
 >%temp%\MakeShortCut.vbs echo Set objShell=WScript.CreateObject("Wscript.Shell") 
18.
>>%temp%\MakeShortCut.vbs echo Set objShortcut=objShell.CreateShortcut("%zielpfad%\%progtitel%.lnk") 
19.
>>%temp%\MakeShortCut.vbs echo objShortcut.TargetPath="%progdir%\%progexe%" 
20.
>>%temp%\MakeShortCut.vbs echo objShortcut.Description="%beschreibung%" 
21.
>>%temp%\MakeShortCut.vbs echo objShortcut.WorkingDirectory="%progdir%" 
22.
>>%temp%\MakeShortCut.vbs echo objShortcut.Save 
23.
 
24.
::... ausführen ... 
25.
cscript //nologo %temp%\MakeShortCut.vbs 
26.
 
27.
::... und wieder löschen. 
28.
del %temp%\MakeShortCut.vbs
Grüße
bastla
Bitte warten ..
Mitglied: batch-lernen
15.11.2010 um 17:46 Uhr
Hallo,

das hab ich jetzt nicht verstanden. Sorry aber ich bin da doch ein ziemlicher DAU.

Kannst du mir das so umbauen, dass es immer einen variablen Link anlegt?

Set Shell = CreateObject("WScript.Shell")
DesktopPath = Shell.SpecialFolders("Desktop")
Set link = Shell.CreateShortcut(DesktopPath & "\Heutige_Aufnahmen.lnk")
link.Arguments = "\%date:~-4%\%date:~-7,2%\%date:~-10,2%"
link.Description = "Heute"
link.IconLocation = "app.exe,1"
link.TargetPath = "C:\Neuer Ordner\%date:~-4%\%date:~-7,2%\%date:~-10,2%"
link.WindowStyle = 1
link.WorkingDirectory = "C:\Neuer Ordner"
link.Save

Mir fehl da irgendwie der Überblick.

Gruß
Bitte warten ..
Mitglied: bastla
15.11.2010 um 18:06 Uhr
Hallo batch-lernen!

Mein Batch (kannst du Deinem Startbatch hinzufügen bzw so wie gepostet als zB "Test.cmd" speichern und direkt ausführen) erstellt (für den heutigen Tag - siehe Zeilen 7 und 14) einen Ordner "C:\Pfad\2010\11\15" und legt auf dem Desktop eine Verknüpfung zu diesem Ordner mit dem Namen "Heute" an - wenn Du jetzt andere Pfade / Namen (als in Deiner ursprünglichen Beschreibung oben) verwenden willst, brauchst Du doch nur die Zeilen 7 und 5 abzuändern ...

Und: Dass die eigentlicht Arbeit das VBScript macht, muss Dich eigentlich gar nicht kümmern, da das Script ohnehin vom Batch selbst erzeugt wird. Wenn Du tatsächlich dieses Script noch beeinflussen willst, kannst Du die entsprechenden Änderungen ja eintragen - der Unterschied zu Deinem (trotz entsprechenden Hinweises von TimoBeil nicht unter "Code"-Tags) geposteten Entwurf besteht eigentlich nur darin, dass bei meinem Vorschlag "objShortcut" anstelle von "link" verwendet wird ...

Grüße
bastla
Bitte warten ..
Mitglied: batch-lernen
16.11.2010 um 13:02 Uhr
Hallo bastla,

du bist echt super. Ich danke dir!

Es funktioniert einwandfrei!!!

Ich Depp hab das als *.vbs gespeichert und mich gewundert warum es nicht geht...

Ich kann nur sagen. Super Forum!!!

Gruß
batch-lernen
Bitte warten ..
Mitglied: bastla
16.11.2010 um 13:15 Uhr
Hallo batch-lernen!

Danke für die Blumen ...

Aus Deinem Nick und der einleitenden Beschreibung hatte ich geschlossen, Du könntest die "verbatchte" Fassung brauchen - ansonsten ließe sich der Pfad natürlich auch per VBS aus dem aktuellen Datum erzeugen:
objShortcut.TargetPath = "C:\Neuer Ordner\" & Year(Date) & "\" & Right("0" & Month(Date), 2) & "\" & Right("0" & Day(Date), 2)
Grüße
bastla
Bitte warten ..
Mitglied: micneu
17.11.2010 um 00:03 Uhr
schau dir mal das program nircmd an
http://www.nirsoft.net/utils/nircmd.html

das kannst du gut in dein script mit einbauen.
01.
nircmdc shortcut "%PROGRAMME%\Macdoc7\MacDoc2006.exe" "~$folder.desktop$" "MacDoc2006"
legt eine verlnüpfung auf den desktop des angemeldeten users mit dem namen "MacDoc2006" an.

was spricht den gegen powershell, möchtest du noch eine möglichkeit mit powershell haben?

gruß michael
Bitte warten ..
Mitglied: micneu
17.11.2010 um 01:05 Uhr
ich habe es dir mal in powershell gebaut.
ich habe auch noch abfragen erstellt ob die verzeichnisse schon angelegt sind.
so bekommst du keine fehler.

01.
#   ************************************************************** 
02.
#   * verknuepfung anlegen   * 
03.
#   * * 
04.
#   *                                                            * 
05.
#   ************************************************************** 
06.
#    Das muß einmal auf der powershell ausgeführt werden 
07.
#     "Set-ExecutionPolicy Unrestricted" 
08.
#   ************************************************************** 
09.
#   * Erstellt M.N - POWERSHELL / Entwicklung   16.11.2010                   * 
10.
#   ************************************************************** 
11.
 
12.
#$ErrorActionPreference = 'stop' 
13.
#$ErrorActionPreference = 'SilentyContinue' 
14.
$WshShell = New-Object -ComObject WScript.Shell 
15.
$QUELLE = "C:\Temp" 
16.
$YYYY = Get-Date -format 'yyyy'  
17.
echo "Jahr: `t$YYYY" 
18.
$MM = Get-Date -format 'MM' 
19.
echo "Monat: `t$MM" 
20.
$DD = Get-Date -format 'dd' 
21.
echo "Tag: `t$DD" 
22.
if (Test-Path $QUELLE\$YYYY) { 
23.
    echo "Verzeichnis $YYYY ist da" } 
24.
else { 
25.
    echo "Verzeichnis $YYYY nicht da" 
26.
    md "$QUELLE\$YYYY" } 
27.
 
28.
if (Test-Path $QUELLE\$YYYY\$MM) { 
29.
    echo "Verzeichnis $YYYY\$MM ist da" } 
30.
else { 
31.
    echo "Verzeichnis $YYYY\$MM nicht da" 
32.
    md "$QUELLE\$YYYY\$MM" } 
33.
     
34.
if (Test-Path $QUELLE\$YYYY\$MM\$DD) { 
35.
    echo "Verzeichnis $YYYY\$MM\$DD ist da" } 
36.
else { 
37.
    echo "Verzeichnis $YYYY\$MM\$DD nicht da" 
38.
    md "$QUELLE\$YYYY\$MM\$DD" } 
39.
 
40.
if (Test-Path "$HOME\desktop\heute.lnk") { 
41.
    echo "verknüpfung ist da" 
42.
    del "$HOME\desktop\heute.lnk" 
43.
    sleep 2 
44.
    $link = $wshshell.CreateShortcut(”$HOME\Desktop\heute.lnk”) 
45.
    $link.targetpath = "$QUELLE\$YYYY\$MM\$DD" 
46.
    $link.save() } 
47.
else { 
48.
    $link = $wshshell.CreateShortcut(”$HOME\Desktop\heute.lnk”) 
49.
    $link.targetpath = "$QUELLE\$YYYY\$MM\$DD" 
50.
    $link.save() }
einige der echo ausgaben habe ich nur drinn zum testen die kannst du rausnehmen.

gruß michael
Bitte warten ..
Mitglied: batch-lernen
17.11.2010 um 09:28 Uhr
Hallo,

danke auch für deinen Vorschlag. Aber ich denke das funktioniert so ganz gut wie es bastla vorgeschlagen hat. Ich muss es jetzt nur noch auf dem eigentlichen Rechner testen, für den ich das gebraucht habe. Das wird wahrscheinlich am Wochende sein.

Sollte es wider erwarten Probleme geben - hab nämlich festgestellt das ein Win XP Rechner manchmal andere Dinge macht als ein Win 7 Rechner - komme ich noch mal auf euch zurück.

@micneu: Ich muss aber sagen, mit Power Shell kenne ich mich nun gar nicht aus.

Viele Grüße
batch-lernen
Bitte warten ..
Mitglied: micneu
19.11.2010 um 18:37 Uhr
Zitat von batch-lernen:
@micneu: Ich muss aber sagen, mit Power Shell kenne ich mich nun gar nicht aus.

ich getsehe, ich kenne mich auch noch NICHT wirklich mit powershell aus.
stelle jeden tag auf neue fest das powershell doch sehr mächtig ist.

manchmal etwas umständlicher als die BASH (linux) aber es macht spaß.

gruß michael
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Verknüpfungen auf einen Ordner mit Batch anlegen

gelöst Frage von ActaresBatch & Shell6 Kommentare

Neuer Tag - Neues Problem ;) Ausgangslage: Ich habe zwei Daten Server: Projektleitung und Finanzen / Vertrieb. Mit einer ...

Virtualisierung

Desktop löscht überall Verknüpfung

gelöst Frage von Questionmark93Virtualisierung4 Kommentare

Wir benutzen den Thinstuff XPVS Server. Wir haben immer wieder Probleme damit :D Eines davon wäre: Wir haben gewisse ...

Windows Userverwaltung

Desktop Verknüpfung nicht löschbar ausrollen

gelöst Frage von GeestRiderWindows Userverwaltung11 Kommentare

Moin, ich würde gerne auf 20 Rechner eine Desktop Verknüpfung ausrollen, die nicht gelöscht werden kann. Gibt es eine ...

Windows Systemdateien

Verknüpfungen auf "Alluser Desktop"

gelöst Frage von chhadmWindows Systemdateien3 Kommentare

Hallo zusammen, evtl. kann mir jemand bei meinem Anliegen weiterhelfen. Ich habe auf allen Clients, die in der Domäne ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 7 StundenErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 9 StundenWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 9 StundenMicrosoft7 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 2 TagenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1026 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall15 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)15 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser13 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...