BOfH_666 577 Geschrieben 11. Februar 2019 Melden Teilen Geschrieben 11. Februar 2019 vor 32 Minuten schrieb daabm: Du lügst doch... Du kannst gar nicht anders ... nu gönn' mir doch auch mal meinen Spaß!! Zitieren Link zu diesem Kommentar
wethlo 0 Geschrieben 12. Februar 2019 Autor Melden Teilen Geschrieben 12. Februar 2019 Guten Morgen! Wie gesagt, hier nochmals mein recht herzlichen Dank für die Lösung meines Problems! Habe gestern Abend noch versucht, zwei weitere für mich hilfreiche "Replacec" in dein programmiertes Skript zu schreiben, wobei ich allerdings kläglich gescheitert bin und die von Dir angesprochenen Frustrationen auslösten Den Rat mit den Video-Anleitungen über PowerShell nehme ich auf jeden Fall an und werde mich dahingehend weiterbilden. Falls jemand einem momentan noch in Sachen PowerShell überforderten Lehrer unter die Arme greifen möchte und die Ernte ein paar dankbare Schüler wären hier die zwei Replacec $_ -replace "SetApproachStrategy(true, false, -1)","SetApproachStrategy(false, true, 2) $_ -replace "SetRetractStrategy(true, false, -1, 0)","SetRetractStrategy(false, true, 2, 0) Danach werde ich selber versuchen, dieses Skript in das vom CAD-Hersteller bereitgestellte Skript einzubauen, in der Hoffnung, dass ich das hin bekomme Zitieren Link zu diesem Kommentar
tesso 375 Geschrieben 12. Februar 2019 Melden Teilen Geschrieben 12. Februar 2019 (bearbeitet) Am Ende fehlen schon mal die schliessenden Hochkommas. Und du musst die Klammern escapen, sprich mit \ "entwerten". Schau die mal Replace aus dem Skript an, die funktionieren. Dann verstehst du was ich meine. bearbeitet 12. Februar 2019 von tesso Zitieren Link zu diesem Kommentar
wethlo 0 Geschrieben 13. Februar 2019 Autor Melden Teilen Geschrieben 13. Februar 2019 Habe den Code der Einfachheit halber und meiner möglichen Verständnissen wieder etwas vereinfacht und die zwei gewünschten "Replacec" ergänzt, welche nun auch funktionieren (hat zu kleinen Erfolgserlebnissen geführt;-) ).. Die von BofH_666 geschriebene und bis dato funktionierende Ergänzung funktioniert jetzt leider nicht mehr. Poste den Code mal in der Hoffnung, dass jemand Abhilfe leisten kann. $original_file = 'C:\Users\theo_\Documents\Seite_Rechts_2_1.xcs' $destination_file = 'C:\Users\theo_\Documents\Seite_Rechts_2_1.xcs' (Get-Content $original_file) | Foreach-Object { $_ -replace "SetWorkpieceSetupPosition\(0.0000, 0.0000, 0.0, 0.0\)","SetWorkpieceSetupPosition(5.0000, 5.0000, 0.0, 0.0)" } | Set-Content $destination_file (Get-Content $original_file) | Foreach-Object { $_ -replace "SetApproachStrategy\(true, false, -1\)","SetApproachStrategy(false, true, 2)" } | Set-Content $destination_file (Get-Content $original_file) | Foreach-Object { $_ -replace "SetRetractStrategy\(true, false, -1, 0\)","SetRetractStrategy(false, true, 2, 0)" } | Set-Content $destination_file $Ergaenzung = @' CreateNullOperation("Wegfahrschritt", 2000.0000, 0.0000, 1); ResetPneumaticHood(); ResetApproachStrategy(); ResetRetractStrategy(); '@ $ReplacedContent[0..($ReplacedContent.Length - 6)] + $Ergaenzung + $ReplacedContent[($ReplacedContent.Length - 5)..($ReplacedContent.Length)] | Set-Content -Path $destination_file -Force Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 13. Februar 2019 Melden Teilen Geschrieben 13. Februar 2019 (bearbeitet) Warum nimmst Du nicht einfach meinen Code und versuchst zu verstehen, was er tut? Du führst z.B. mehr oder weniger die gleiche Schleife 3 mal aus, nimmst dafür aber jedes mal die Original-Datei als Grundlage und schreibst jedes mal die Ziel-Datei neu. Das dürfte eigentlich nicht funktionieren. Es wäre effizienter, alle Änderungen in einer Schleife nacheinander durchzuführen. Ich schreibe in meinem Script die Änderungen mit dem Parameter -OutVariable erst mal temporär in eine Variable. Diese benutze ich dann zum Schluss dazu, dieErgänzung einzufügen. Da Du die Variable nicht benutzt, kann es so nicht funktionieren. Lies einfach Dein Destination-File nochaml mittels Get-Content ein und füge die Ergänzung auf die gleiche Weise wie ich hinzu. Weißt Du was ein Help-Vampire ist? Ich will ja nicht dran Schuld sein, wenn sich jemand die Pulsadern eröffnet .... Um meinen Code-Vorschlag quick & dirty um die letzten beiden zusätzlichen Ersetzungen zu erweitern, musst Du nur eine einzige Zeile ändern ... und zwar das hier else { $_ } .... in das hier ... else { $_.Replace("SetApproachStrategy(true, false, -1)", "SetApproachStrategy(false, true, 2)").Replace("SetRetractStrategy(true, false, -1, 0)", "SetRetractStrategy(false, true, 2, 0)") } ... noch als Erklärung: Der -replace Operator arbeitet mit regulären Ausdrücken. Die String-Methode .Replace() dagegen arbeitet mit direkten String-Ersetzungen. Der zu ersetzende String muss also genau so aussehen, wie in der Methode angegeben. bearbeitet 14. Februar 2019 von BOfH_666 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.