SAPIEN Technologies

a PowerShell közösségi fórumainkon nemrégiben olyan kérdéseket kaptunk, amelyek azt kérdezték, hogy lehetséges-e a PowerShell változókat külső fájlokban tárolni, és ha igen, hogyan történik. Valóban lehetséges a változókat külső fájlokban tárolni a PowerShell használatához. Ezek a külső változók különféle fájltípusokban tárolhatók. A PowerShell fájlban történő tárolás az egyik legegyszerűbb, mert egyszerűen pontozhatja ezeket a fájlokat.

a változók tárolására a következő módszereket fogjuk lefedni:

  • Script fájlok
  • szöveges fájlok
  • JSON fájlok
  • XML fájlok

az ebben a bejegyzésben bemutatott példák meglehetősen egyszerűek, de ez nem jelenti azt, hogy nem lehet meglehetősen összetett változókat tárolni külső fájlokban. Ha külső változók tárolásával szeretne kísérletezni, itt letöltheti a bejegyzés mintafájljait.

Szkriptfájlok

a Dot—beszerzés lehet A legegyszerűbb módja a külső változók tárolásának-de nem mindig a legbiztonságosabb. Amikor egy fájl dot forrásból származik, azt mondjuk a Powershellnek, hogy hajtsa végre ezt a szkriptet. Ha rosszindulatú kód van a fájlban, akkor az a kód is futni fog.

a dot sourcing kiegészítésében azt is meg kell győződnie, hogy a külső változók PowerShell szkriptje alá van írva, és hogy a távoli végrehajtás engedélyezve van a gépen.

a Dot beszerzés hasznos lehet, ha dinamikusan kell információt szereznünk valamiről. Az ebben a bejegyzésben tárgyalt egyéb lehetőségek esetében a fájltípusokban tárolt adatokat manuálisan kell megváltoztatni.

1234

# itt pont forrása a külső változók PowerShell fájlt. "C:\Test\BlogPosts\ExternalVariables.ps1" Write-Host $External_Variable1 $External_Variable2

itt van az ExternalVariables. ps1 fájl:

#külső változók deklarálása
$External_Variable1 = ‘Sapien’
$External_Variable2 = ‘technológiák’

szövegfájlok

a külső változók számos szövegfájlban és formátumban is tárolhatók, például általános egyszerű szövegben .txt fájl a Get-Content parancsmag használatával. Amikor így importálunk változókat, nem futtatunk semmilyen kódot, így nem jelent problémát, ha nem folyamatosan figyeli a fájlokat, hogy információkat szerezzen.

az alábbi három kép az információk egyszerű szöveges fájlban történő tárolásának különböző módjait mutatja be:

12345678910111213

$ScriptDir = Split-Path $script: MyInvocation.Parancsom.Útvonal$ScriptDir + = " \ ExternalVariables.txt " # a get content használatával megkaphatja a txt fájlokban található összes sort $External_Variables = Get-Content-Path $ScriptDir #az ExternalVariables információi tömbként érkeznek #tehát a $program összes karakterláncának kinyomtatásához egy foreach loopforeach-t használunk ($string in $External_Variables){Write-Host $string}

itt van, mi van a Külsőváltozó.txt fájl:

“PowerShell Studio”
“PrimalScript”
“Verzió visszahívás”

csakúgy, mint egy tömb, a hash táblákat szöveges fájlokban is tárolhatjuk. Ahhoz, hogy hash-táblánkat szöveges fájlból kapjuk, a Get-Content kimenetét a ConvertFrom-StringData parancsmagba kell vezetnünk, hogy a kimenetet hash-táblává alakítsuk.

1234567891011121314

$ScriptDir = Split-Path $script: MyInvocation.Parancsom.Útvonal$ScriptDir + = " \ ExternalVariablesHashTable.txt " # a külső változó szövegfájl tartalmának megszerzése # ez a fájl tervszövegben van tárolva, és nincs semmilyen speciális formátumban # itt a "raw" paramétert használjuk a Get-Content-ben, így amikor megkapjuk a fájl tartalmát# úgy, hogy a hashtable-t ne alakítsuk át objektummá$program = Get-Content-raw-Path $ScriptDir | ConvertFrom-StringData write-host "`a változó típusa `$program 'n"$program.GetType () write-host "`nPrinting '$program " $program

itt van az ExternalVariablesHashTable.txt:

Company=Sapien Technologies
Product=PowerShell Studio

az információk ilyen szöveges fájlban történő tárolása kényelmes módja annak, hogy az információkat ember által olvasható formátumban Tárolja. A szöveges fájlok azzal az előnnyel is járnak, hogy nem futtathatók, tehát ha véletlenül rosszindulatú kód van tárolva egy fájlban, amelyet nem rendszeresen kezel, akkor nem kerül végrehajtásra.

JSON fájl

külső változók JSON formátumban is tárolhatók. Az egyetlen figyelmeztetés az, hogy a Get-Content kimenetét ismét egy másik parancsmagba kell vezetnünk; azonban ezúttal ez ConvertFrom-Json helyett ConvertFrom-StringData. Azok számára, akik nem ismerik a JSON-t, vagy fel kell frissíteniük a formátumot, kérlek látogass el www.JSON.org.

1234567891011121314151617

$ScriptDir = Split-Path $script: MyInvocation.Parancsom.Elérési út$ScriptDir + = " \ jsonfile.json" # információk beszerzése a json fájlból # a kimenetet a Get-Content-től a ConvertFrom-Json Parancsmaghoz adjuk át$JsonObject = Get-Content $ScriptDir | ConvertFrom-Json #most van egy tömbünk, ami azt jelenti, hogy indexelnünk kell#egy elemet a használatához$JsonObject.Felhasználók # indexeléskor hívhatjuk az elemek attribútumaitwrite-Host "attribútumok egyenként printed"$JsonObject.Users.Name$JsonObject.Users.Age$JsonObject.Users.City$JsonObject.Users.Country$JsonObject.Users.UserId

itt van, mi van a JSON fájlban:

{
“felhasználók”:
}

XML fájl

ha VÁLTOZÓINKAT XML formátumban tároljuk, szükség esetén megjegyzéseket adhatunk a változó fájlhoz. Az egyetlen két fájlformátum, amelyről ebben a bejegyzésben beszélünk, amely lehetővé teszi a megjegyzéseket, az XML vagy a PS1. A JSON és a normál TXT fájlok nem teszik lehetővé a megjegyzéseket. Az XML formátum tömör áttekintése, látogasson el w3schools.com/xml.

123456789

$ScriptDir = Split-Path $script: MyInvocation.Parancsom.Elérési Út$ScriptDir + = " \ XMLFile.xml " # olvassa el a változók összes információját XML fájl#a változót úgy kell leadnunk, mint amikor az összes fájlinformációt benne tároljuk $XML_Variable = Get-Content-Path $ScriptDir #a reggeli objektumon belül tárolt élelmiszer-objektum tömbre hivatkozva$XML_Variable.Breakfast_menu.Élelmiszer / Formátum-lista

itt van az XML fájl:


Belgian Waffles
.95
Two of our famous Belgian Waffles with plenty of real maple syrup
650
Strawberry Belgian Waffles
.95
Light Belgian waffles covered with strawberries and whipped cream
900

Berry-Berry belga gofri
$8.95
belga gofri válogatott friss bogyós gyümölcsökkel és tejszínhabbal borítva
900

az XML és a JSON tárolási formátumok közötti választáskor le kell választani, hogy melyik ismerős. Mivel a fő különbség közöttük az, hogy az XML lehetővé teszi a megjegyzéseket, ez csak preferencia kérdése. Mindezek a lehetőségek életképes módszerek az információk külső fájlokban történő tárolására, amelyeket egy másik program elolvashat, vagy ugyanaz a program később felhasználhat. Az, hogy mennyire összetett, dinamikus vagy sem, és mennyi információt kell tárolni, meghatározza a használni kívánt formátumot.

fájlok exportálása

csakúgy, mint az információk importálása a PowerShell segítségével, az általunk használt programból is exportálhat információkat és objektumokat egy külső fájlba. A PowerShell Studio 2018 olyan kivonatokkal rendelkezik, amelyek sokkal könnyebbé teszik az információk exportálását—egyszerűen adja át a külső fájl és az objektum elérési útját a megfelelő exportálási funkciónak, és a kódrészlet minden másról gondoskodik. Mi fedezi exportáló fájlok kivonatok egy jövőbeli blogbejegyzést.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

More: