Forum » Programiranje » Powershell xml
Powershell xml
chrush ::
Pozdravljeni,
potreboval bi skripto, ki bi uredila xml.file.
xml zgleda tako:
Urediti bi morala samo vrstico iz:
v
pri tem pa je treba vedeti, da je vrednost 'nextUpdateDate="20210625"' na vseh racunalnikih razlicna.
Trenutno imam, kar pa ne deluje:
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)
}
}
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.
Je pa res, da ga nimas privzeto na windowsih.
Zgodovina sprememb…
- spremenil: kow ()
chrush ::
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.

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
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
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:
Npr.: Ukaz:
get-childitem -path hklm:\ -recurse -ErrorAction SilentlyContinue | Where-Object {$_.Name -like "*draw.io*"} mi ne vrne vsega, kar se nahaja v hklm Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | Powershell primerjaj in kopirajOddelek: Programiranje | 1247 (884) | Blisk |
| » | Batch skripta za brisanje map, starejših od X dniOddelek: Operacijski sistemi | 920 (855) | krneki0001 |
| » | [c#] savefiledialog, en sfd a več datotekOddelek: Programiranje | 847 (775) | darkkk |
| » | android črtaOddelek: Programiranje | 2654 (1925) | g333kk |
| » | Skripte (strani: 1 2 )Oddelek: Programiranje | 9331 (7194) | Microsoft |