Jump to content
Sign in to follow this  
DAU0815

Batchdatei zur Änderung Link-Eigenschaften

Recommended Posts

Hallo zusammen,

benötige eine Batchdatei, die die Pfad-Eigenschaften diverser Links (.lnk) in einem Ordern mit Unterverzeichnissen durchsucht und die Pfadangabe partiell ersetzt. Wie z.B. SUCHEN und ERSETZEN unter sonstigen Windosanwendungen.

so sollte aus C:\Daten\B\Braun\180213 folgendes werden C:\Daten\G\Gelb\180213

Vielen Dank schon mal vorab!

Share this post


Link to post
Share on other sites

Wenn du weißt wie es geht kannst du mir die Quelle nennen, oder du hast schon etwas "Fertiges". 

Von mir aus auch gegen Bezahlung oder Spende an Forum oder... :-)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 ;-)

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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() 
  } 

Share this post


Link to post
Share on other sites

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?

Edited by BOfH_666

Share this post


Link to post
Share on other sites

Verstehe nicht ganz, was der Kommentar soll "Soziale Kompetenz ist scheinbar ein knappes Gut heutzutage"  wegen anderem Forum.

Doch ich programmieren diverse Maschinen in Siemens 840D, ... PowerShell ist Neuland.

Ich war froh, dass ich in der CMD klar kam und hier einiges geregelt habe. Alles kann man halt nicht können. :-) 

Share this post


Link to post
Share on other sites

Na was ist denn nun der Fehler? Ohne Fehlermeldung oder wenigstens eine Erklärung, was genau nicht funktioniert, kann Dir keiner helfen.

Share this post


Link to post
Share on other sites

 

Die Datei läuft durch, macht jedoch keine Veränderung in den Eigenschaften (Prüfung mittels rechter Maustaste).

Tut mir Leid für die Störung, ich setzte am Montag unseren ITler dran. :-/

Edited by DAU0815
interner Pfad

Share this post


Link to post
Share on other sites

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() 
}

 

Share this post


Link to post
Share on other sites

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!

 

 

Share this post


Link to post
Share on other sites

Dann lass uns doch bitte an Deiner Lösung teilhaben. Wenn wiedermal jemand danach sucht, wüsste er oder sie bestimmt gerne, was die Lösung war.

Share this post


Link to post
Share on other sites

#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() 

 

  • Like 1

Share this post


Link to post
Share on other sites
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...