» »

Powershell xml

Powershell xml

chrush ::

Pozdravljeni,

potreboval bi skripto, ki bi uredila xml.file.

xml zgleda tako:
<NotepadPlus>
    <ProjectPanels>
        <ProjectPanel id="0" workSpaceFile="" />
        <ProjectPanel id="1" workSpaceFile="" />
        <ProjectPanel id="2" workSpaceFile="" />
    </ProjectPanels>
    <GUIConfigs>
        <GUIConfig name="ToolBar" visible="yes">standard</GUIConfig>
        <GUIConfig name="noUpdate" intervalDays="15" nextUpdateDate="20210625">no</GUIConfig>
        <GUIConfig name="Auto-detection">yes</GUIConfig>
   </GUIConfigs>
<NotepadPlus>


Urediti bi morala samo vrstico iz:
<GUIConfig name="noUpdate" intervalDays="15" nextUpdateDate="20210625">no</GUIConfig>

v
<GUIConfig name="noUpdate" intervalDays="15" nextUpdateDate="20210625">yes</GUIConfig>

pri tem pa je treba vedeti, da je vrednost 'nextUpdateDate="20210625"' na vseh racunalnikih razlicna.

Trenutno imam, kar pa ne deluje:
$users = Get-ChildItem C:\Users
foreach ($user in $users)
{
    $folder = "C:\Users\" + $user + "\AppData\Roaming\Notepad++"
    $file = "\config.xml"
    $path = "$folder" + "$file"
    if (Test-Path -Path $path)
    {
        $newValue = '<GUIConfig name="noUpdate" intervalDays="365" nextUpdateDate="20220606">yes</GUIConfig>'
        $xml = [xml](Get-Content $path)
        $xml.NotepadPlus.GUIConfigs.'<GUIConfig name="noUpdate" intervalDays="15" nextUpdateDate="20210708">no</GUIConfig>' = $newValue
        $xml.save($path)
    }
}
https://www.facebook.com/OverMuraMuviMejkers

kow ::

Ne rabis parsati xml, saj samo spremenis no v yes. Stream editor (sed) ti bo to naredil z one linerjem.
Je pa res, da ga nimas privzeto na windowsih.

Zgodovina sprememb…

  • spremenil: kow ()

Invictus ::

"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

chrush ::

kow je izjavil:

Ne rabis parsati xml, saj samo spremenis no v yes. Stream editor (sed) ti bo to naredil z one linerjem.
Je pa res, da ga nimas privzeto na windowsih.


Zal ne pride v postev, ker ni privzeto na windowsih.

Invictus, tvoj link pa tudi ni v pomoc, ker gre res za enostaven primer, kako zamenjati eno besedo z drugo. In ce jaz zamenjam no v yes, bo to naredilo v celotnem file-u. Jaz pa zelim tocno v doloceni vrstici.
https://www.facebook.com/OverMuraMuviMejkers

Invictus ::

Naredi boljši filter, a je tako težko?
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

chrush ::

$users = Get-ChildItem C:\Users
ForEach ($user in $users)
{
    $folder = "C:\Users\" + $user + "\AppData\Roaming\Notepad++"
    $file = "\config.xml"
    $path = "$folder" + "$file"
    if (Test-Path -Path $path)
    {
        [xml]$xml = (Get-Content $path | Out-String) -replace '(.*noUpdate.*)no</GUIConfig>', '$1yes</GUIConfig>'
        $xml.save($path)
    }
}


Koncno uspelo. Hvala. :D
https://www.facebook.com/OverMuraMuviMejkers

chrush ::

Kako bi naredil s powershellom enako, kot naredi ukaz F3 v Registry Editorju? Torej, zelim poiskati vse key, value, data, ki jih je recimo nastlal program draw.io.
Npr.: Ukaz:
get-childitem -path hklm:\ -recurse -ErrorAction SilentlyContinue | Where-Object {$_.Name -like "*draw.io*"}
mi ne vrne vsega, kar se nahaja v hklm
https://www.facebook.com/OverMuraMuviMejkers


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Powershell primerjaj in kopiraj

Oddelek: Programiranje
61068 (705) Blisk
»

Batch skripta za brisanje map, starejših od X dni

Oddelek: Operacijski sistemi
5817 (752) krneki0001
»

[c#] savefiledialog, en sfd a več datotek

Oddelek: Programiranje
8752 (680) darkkk
»

android črta

Oddelek: Programiranje
412410 (1681) g333kk
»

Skripte (strani: 1 2 )

Oddelek: Programiranje
508812 (6675) Microsoft

Več podobnih tem