find and replace wildcard

This topic contains 5 replies, has 2 voices, and was last updated by  John Curtiss 2 weeks, 4 days ago.

  • Author
    Posts
  • #103604

    John Curtiss
    Participant

    edit: how do I display the two arrow characters on the comma and period keys in this forum? it's getting edited out as 'code'

    i'm trying to edit content in a scheduled task. the task xml contains this line

    2018-06-29T23:59:00

    i'm trying to replace the "2018-06-29T" part, but the '2018-06-29' part could be anything, so I need a wildcard.

    $content = (Get-Content $task)
    $newcontent= $content -Replace "*T",$new
    $newcontent

    $newcontent is still $content, so I don't think it's finding the text to replace, possibly because of the arrow characters in the text, possibly because of the wildcard. help?

  • #103606

    Olaf Soyk
    Participant

    How familiar are you with the concept of regular expressions in general and in Powershell in particular? It is used when you use comparison operators like -match and -replace.
    That would lead to a command like this:

    $newcontent= $content -Replace ".*T",$new

    to "fix" your code.
    On the other hand I'm pretty sure there are probably better ways to manipulate a scheduled task than using string acrobatics. 😉 You might show some more of your code. We might help you with this.

  • #103622

    John Curtiss
    Participant

    so the text I need to replace, and the text I need to use to replace it, both contain characters that I can't display in this forum because the forum thinks it's code. and I can't upload a screenshot. it's the left and right arrow characters above the comma and period on the keyboard.

  • #103624

    John Curtiss
    Participant

    the text I need to replace: "('less than' symbol)StartBoundary('greater than' symbol)2018-06-18T"

  • #103627

    John Curtiss
    Participant

    I went the XML route, and it replaces the text I want, but apparently that doesn't actually affect the scheduled task anyway. i'm trying to change the Date in "startboundary" without changing the time.

     $Date = (get-date -Format o).split('T')[0]
     $xml = [xml](Get-Content $task)
     $current = $xml.task.Triggers.TimeTrigger.StartBoundary
     $currenttime = $current.split("T")[1]
     $new = $date + "T" + $currenttime
     $xml.task.triggers.timetrigger.StartBoundary = $new
     $xml.Save($task.FullName)
    

    that code successfully modifies the XML of the task just like I want, but the trigger remains unchanged in the task scheduler GUI.

You must be logged in to reply to this topic.