SAPIEN Technologies

på vores community-fora har vi for nylig modtaget spørgsmål, der spørger, om det er muligt at gemme variabler i eksterne filer, og i så fald hvordan gøres det. Det er faktisk muligt at gemme variabler i eksterne filer, som du kan bruge. Disse eksterne variabler kan gemmes i en række filtyper. Opbevaring af dem i en fil er en af de nemmeste, fordi du bare kan prikke kilde disse filer.

vi vil dække følgende metoder til at gemme variabler:

  • Script filer
  • tekstfiler
  • JSON filer

eksemplerne vist i dette indlæg er ret enkle, men det betyder ikke, at det ikke er muligt at gemme ret komplekse variabler i eksterne filer. Hvis du vil eksperimentere med lagring af eksterne variabler, kan du hente prøvefilerne til dette indlæg her.

Script filer

Dot sourcing kan være den nemmeste måde at gemme eksterne variabler—men det er ikke altid den sikreste. Når en fil er prikket, fortæller vi, at vi skal udføre dette script. Hvis der er nogen ondsindet kode i filen, kører denne kode også.

i tillæg til dot sourcing skal du også sikre dig, at scriptet til eksterne variabler er signeret, og at fjernudførelse er aktiveret på din maskine.

Dot sourcing kan være nyttigt, hvis vi har brug for at få oplysninger om noget dynamisk. For de andre muligheder, der diskuteres i dette indlæg, skal de data, der er gemt i filtyperne, ændres manuelt.

1234

# her prikker vi kilden til de eksterne variabler. "C:\Test\BlogPosts\ExternalVariables.ps1" skriv-vært $ Ekstern_variabel1 $Ekstern_variabel2

her er hvad der er i filen Eksternvariables.ps1:

#Erklæring om eksterne variabler
$ Ekstern_variabel1 = ‘Sapien’
$Ekstern_variabel2 = ‘teknologier’

tekstfiler

eksterne variabler kan også gemmes i en række tekstfiler og formater, såsom almindelig tekst i en generel .fil ved hjælp af Get-Content cmdlet. Når vi importerer variabler på denne måde, kører vi ikke nogen kode, så det er ikke et problem, hvis du ikke konstant overvåger filerne for at få oplysninger.

de følgende tre billeder er eksempler på forskellige måder at lagre information i en simpel tekstfil:

12345678910111213

$ScriptDir = Split-Path $ script: MyInvocation.MyCommand.Sti$ScriptDir + = " \ Eksternvariabler."#brug Hent indhold for at få alle de linjer, der er i tekstfilerne $Ekstern_variables = Get-Content-Path $ScriptDir #oplysningerne fra de eksterne varianter kommer ind som et array #så for at udskrive alle strengene i $ - programmet bruger vi en foreach loopforeach ($string i $Ekstern_variables){skriv-vært $string}

her er hvad der er i det Eksternevariabler.tekstfil:

“Studio”
“PrimalScript”
“version tilbagekaldelse”

ligesom et array kan vi gemme hash-tabeller i tekstfiler. For at få vores hash-tabel fra en tekstfil, bliver vi nødt til at rør output fra Get-indholdet til Convertfra-StringData cmdlet for at konvertere output til en hash-tabel.

1234567891011121314

$ScriptDir = Split-Path $ script: MyInvocation.MyCommand.Sti$ScriptDir + = " \ Eksternvariableshashtable.denne fil er gemt i plantekst og er ikke i noget specielt format # vi bruger parameteren "rå" her I Get-Content, så når vi får indholdet# af filen, så vores hashtable ikke konverteres til et objekt$program = Get-Content-rå-Path $ScriptDir | ConvertFrom-StringData skriv-vært "`nType af variablen `$program 'n"$program.GetType () skriv-vært "`nPrinting '$program " $program

her er hvad der er i Eksterntvariableshashtable.TST:

Company=Sapien Technologies
produkt=Studio

lagring af information i en tekstfil som denne er en bekvem måde at opbevare information i et menneskeligt læsbart format. Tekstfiler kommer også med den fordel, at de ikke kan eksekveres, så hvis der tilfældigvis er ondsindet kode gemt i en fil, administrerer du ikke regelmæssigt, at den ikke udføres.

JSON-fil

det er også muligt at gemme eksterne variabler i et JSON-format. Den eneste advarsel er, at vi igen bliver nødt til at rør output fra Get-indhold til en anden cmdlet; men denne gang er det ConvertFrom-Json snarere end ConvertFrom-StringData. For dem, der ikke er bekendt med JSON eller har brug for at børste op på formatet, besøg venligst www.JSON.org.

1234567891011121314151617

$ScriptDir = Split-Path $ script: MyInvocation.MyCommand.Sti$ScriptDir + = " \ jsonfile.json " #hentning af oplysninger fra JSON-filen #Vi sender output fra Get-Content til ConvertFrom-Json Cmdlet$JsonObject = Get-Content $ScriptDir | ConvertFrom-Json#lige nu har vi et array, der betyder, at vi er nødt til at indeksere # et element for at bruge det$JsonObject.Brugere #når indekseret vi kan kalde attributterne for elementerskriv-vært "attributter individuelt printed"$JsonObject.Users.Name$JsonObject.Users.Age$JsonObject.Users.City$JsonObject.Users.Country$JsonObject.Users.UserId

her er hvad der er i JSON-filen:

{
“brugere”:
}

hvis vi gemmer vores variabler i et format, kan vi tilføje kommentarer til variabelfilen, hvis det er nødvendigt. De eneste to filformater, som vi vil tale om i dette indlæg, der giver mulighed for kommentarer, er PS1 eller PS1. JSON og normale tekstfiler tillader ikke Kommentarer. For en kortfattet oversigt over formatet, besøg w3schools.com/xml.

123456789

$ScriptDir = Split-Path $ script: MyInvocation.MyCommand.Sti$ScriptDir + = " \ " Fil.vi bliver nødt til at kaste variablen, som når vi gemmer alle filoplysningerne i den $$V_variable = Get-Content-Path$ScriptDir#, der henviser til det madobjekt, der er gemt i Morgenmadsobjektet $ V_variable.Morgenmad_menu.Mad / Format-liste

her er hvad der er i filen:


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 belgiske vafler
$8.95
belgiske vafler dækket med assorterede friske bær og flødeskum
900

når du vælger mellem JSON-og JSON-lagringsformater, kommer det ned på, hvilken der er mere kendt. Da den største forskel mellem dem er, at HML tillader kommentarer, er det bare et spørgsmål om præference. Alle disse muligheder er levedygtige måder at gemme oplysninger i eksterne filer til enten læses af et andet program eller bruges af det samme program på et senere tidspunkt. Hvor kompleks, om det er dynamisk eller ej, og hvor meget information der skal gemmes, dikterer det format, der skal bruges.

eksport til filer

ligesom import af information med Strømshell er det også muligt at eksportere information og objekter til en ekstern fil fra det program, vi bruger. Studio 2018 leveres med uddrag, der gør eksport af oplysninger meget lettere—bare passere stien til den eksterne fil og objektet til den tilsvarende eksportfunktion, og uddraget vil tage sig af alt andet. Vi dækker eksport til filer ved hjælp af uddrag i et fremtidigt blogindlæg.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

More: