Jump to content

Batchdatei zur Änderung Link-Eigenschaften


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hmmm .... das heißt also, dass Du noch nicht woanders danach gesucht hast, oder? Ich hatte den Zweck dieses Forum eher so verstanden, dass man bei konreten Problemen, die man mit einem Script hat, dass man selbst geschreiben hat oder gerade schreibt, fragen kann, wie man diese Probleme beseitigt oder umgeht. Ich habe so etwas bisher noch nie gebraucht und deshalb auch nichts Fertiges da und auch noch nie danach gesucht. Aber ich scripte ganz gern und wenn ich von Dir etwas sehen würde, könnte ich versuchen, es zu verbessern oder debuggen. ;-)  :D

Link zu diesem Kommentar

Mein Problem ist, dass ich die Datei .lnk nicht durch ein Script öffnen kann. Sie wird immer ausgeführt. Daran scheitert es schon...

Tut mir Leid, dass ich nichts liefern kann, dann muss ich wohl wo anders suchen

Hallo BOfH_666 kannst du zumindest nen Tipp geben, nach was ich suchen muss. Bin leider kein IT-Brain wie Du. :-/ (gehe ich zumindest daovnaus, was man so alles findet unter BOfH_666 ;-)

Link zu diesem Kommentar

OK, dann also ein paar generelle Tipps. Ich würde empfehlen nicht nach Batch oder cmd zu suchen sondern Powershell. Batch / cmd sind ziemlich obsolet und für viele Aufgaben nicht funktionsreich genug. Mit Powershell bist Du viel besser dran. Dann würde ich vermulich auch eher in english suchen. Man bekommt einfach mehr Ergebnisse - also sowas wie "change target of windows *.lnk file". Ich erhalte da schon mit dem erstn Treffer etwas Vielversprechendes.

Alle Foren, die ich kenne, lassen Dich, ohne dass Du wenigstens einen kleinen Schnipsel eigenen Code lieferst, tendenziell eher wegtreten. ;-)

Solltest Du das evtl. beruflich benötigen, würde ich Dir dringend empfehlen, die die Grundlagen von Powershell anzueignen. In der Windows-Welt kommt man sowieso nicht mehr drumherum und es schadet nie etwas Neues zu lernen ... auch wenn man es vielleicht seltener braucht.

Link zu diesem Kommentar

Ok SUPER (und DANKE), habe nun PowerShell aktiviert und etwas gefunden.

Doch leider macht das Programm nicht was es soll:

 

 #modify variables accordingly 
$fileName ="*.lnk" 
$folder = "P:\" 
[string]$from = "\B\Braun\" 
[string]$to = "\G\Gelb\" 
$list = Get-ChildItem -Path $folder -Filter $fileName -Recurse  | Where-Object { $_.Attributes -ne "Directory"} | select -ExpandProperty FullName 
$obj = New-Object -ComObject WScript.Shell 
 
ForEach($lnk in $list) 
      { 
      $obj = New-Object -ComObject WScript.Shell 
      $link = $obj.CreateShortcut($lnk) 
      [string]$path = $link.TargetPath  
      [string]$path = [string]$path.Replace($from.tostring(),$to.ToString()) 
      #If you need workingdirectory change please uncomment the below line. 
      #$link.WorkingDirectory = [string]$WorkingDirectory.Replace($from.tostring(),$to.ToString()) 
      $link.TargetPath = [string]$path 
      $link.Save() 
  } 

Link zu diesem Kommentar

Ganz schön frech, einfach in einem anderen Forum zu fragen. Soziale Kompetenz ist scheinbar ein knappes Gut heutzutage.

Bitte formatiere Deinen Code als Code hier im Forum. "... macht nicht, was es soll ... " ist keine valide Fehlerbeschreibung. Wir kennen Dein System nicht und können Deinen Bildschirm nicht shen. Gibt es eine Fehlermeldung? Wenn ja - hier posten, bitte! (idealerweise auch als code formatiert) Wenn es keine Fehlermeldung gibt, woran erkennst Du dass es nicht das tut, was es soll?

bearbeitet von BOfH_666
Link zu diesem Kommentar

Du störst nicht - dafür ist das Forum ja da. Wenn ich keinen Spass dran hätte, wär ich nicht mehr hier und würde nicht mehr antworten. ich werd ja nicht gezwungen. ;-):D

 

Wenn das Script nicht das erwartete Ergebnis liefert, muss man eben rauskriegen, warum nicht.  Gib doch einfach einmal vor der Änderung und einmal nach der Änderung die Eigenschaft als text aus, um die es Dir geht. Also so:

$fileName ="*.lnk" 
$folder = "P:\" 
[string]$from = "\B\Braun\" 
[string]$to = "\G\Gelb\" 
$list = Get-ChildItem -Path $folder -Filter $fileName -Recurse  | Where-Object { $_.Attributes -ne "Directory"} | Select-Object -ExpandProperty FullName 
 
ForEach($lnk in $list) { 
    $obj = New-Object -ComObject WScript.Shell 
    $link = $obj.CreateShortcut($lnk) 
    [string]$path = $link.TargetPath
    Write-Host "Pfad vorher: '$($path)'"
    [string]$path = [string]$path.Replace($from.tostring(),$to.ToString()) 
    Write-Host "Pfad nachher: '$($path)'"
    $link.TargetPath = [string]$path 
    $link.Save() 
}

 

Link zu diesem Kommentar

Habe es hinbekommen. Alle Links wurden KORREKT umgeschrieben. :-) 

Zu deinem Kommentar nochmals kurz: Wollte nicht in diversen Foren "rumfragen" doch da ich bin hier echt neu auf dem Gebiet und eher in Programmierung von ROBOTERN, LASER, MEHR-ACHS-MASCHINEN, ... tätig. 

Meinen Ehrgeiz hat es jedenfalls gepackt - aufgeben war noch nie meine Sache. Schönes Wochenende noch! ;-) Daumen hoch!

 

 

Link zu diesem Kommentar

#modify variables accordingly 
#
$fileName ="*.lnk" 
$folder = "M:\Daten" 
#
[string]$from = "\B\Braun\" 
[string]$to = "\G\Gelb\" 
#
$list = Get-ChildItem -Path $folder -Filter $fileName -Recurse  | Where-Object { $_.Attributes -ne "Directory"} | select -ExpandProperty FullName 
$obj = New-Object -ComObject WScript.Shell 
 
ForEach($lnk in $list) 

      $obj = New-Object -ComObject WScript.Shell 
      $link = $obj.CreateShortcut($lnk) 
      [string]$path = $link.TargetPath  
#    Write-Host " Pfad vorher: '$($path)'"
      [string]$path = [string]$path.Replace($from.tostring(),$to.ToString()) 
#    Write-Host "Pfad nachher: '$($path)'"
      #If you need workingdirectory change please uncomment the below line. 
      #$link.WorkingDirectory = [string]$WorkingDirectory.Replace($from.tostring(),$to.ToString()) 
      $link.TargetPath = [string]$path 
      $link.Save() 

 

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...