Jump to content
Sign in to follow this  
mtf

Powershell String to Object

Recommended Posts

Hallo Scripter

 

Ich versuche und suche nun schon lange nach einer Möglichkeit ein String zu einem Object zu konvertieren.

 

Das ist bestimmt doch möglich, oder?

 

Besten Dank

Share this post


Link to post
Share on other sites

hi,

versteh ich nicht ganz. Ein String ist ein Objekt vom Typ System.String

 

PS C:\> $a="MCSEboard find ich gut"
PS C:\> $a.length
22

#$a="MCSEboard find ich gut"
#ist gleichbedeutend mit
#$a=[system.string]"MCSEboard find ich gut"

#die Objectmehtoden und Eigenschaften bekommst du mit
PS C:\> $a | get-member


  TypeName: System.String

Name             MemberType            Definition
----             ----------            ----------
Clone            Method                System.Object Clone()
CompareTo        Method                System.Int32 CompareTo(Object value), System.Int32 CompareTo(String strB)
Contains         Method                System.Boolean Contains(String value)
CopyTo           Method                System.Void CopyTo(Int32 sourceIndex, Char[] destination, Int32 destinationIn..
EndsWith         Method                System.Boolean EndsWith(String value), System.Boolean EndsWith(String value, ..
Equals           Method                System.Boolean Equals(Object obj), System.Boolean Equals(String value), Syste..
GetEnumerator    Method                System.CharEnumerator GetEnumerator()
GetHashCode      Method                System.Int32 GetHashCode()
GetType          Method                System.Type GetType()
...

Edited by blub

Share this post


Link to post
Share on other sites

Dann suche ich wohl am falschen Ort.

Ich möchte folgendes:


PS C:\> $a="MCSEboard find ich gut"
PS C:\> $a[0]
M
PS C:\>
[/Code]

Ich möchte, dass nicht M zurückkommt sondern "MCSEboard find ich gut".

 

Kann mit jemand einen Tipp geben, wir ich da hin komme?

Share this post


Link to post
Share on other sites

Ich muss wohl noch weiter ausholen:

 

Mein Script list ein Textfile ein mit Username und Ablaufdatum. Nun bin ich in einer foreach-Schalufe und lese alle Userdaten ein

Username in die Variable $Name und das Ablaufdatum in die Variable $ExpDate.

Nun möchte ich diese Variabelwerte zwischenspeichern und danach sortiert nach $ExpDate zurückgeben.

Share this post


Link to post
Share on other sites
Ich muss wohl noch weiter ausholen:

 

Mein Script list ein Textfile ein mit Username und Ablaufdatum. Nun bin ich in einer foreach-Schalufe und lese alle Userdaten ein

Username in die Variable $Name und das Ablaufdatum in die Variable $ExpDate.

Nun möchte ich diese Variabelwerte zwischenspeichern und danach sortiert nach $ExpDate zurückgeben.

 

Wie sieht das Text File aus?

Du suchst ein Array bzw. Hash Tabelle.

Share this post


Link to post
Share on other sites
Ich muss wohl noch weiter ausholen:

 

Mein Script list ein Textfile ein mit Username und Ablaufdatum. Nun bin ich in einer foreach-Schalufe und lese alle Userdaten ein

Username in die Variable $Name und das Ablaufdatum in die Variable $ExpDate.

Nun möchte ich diese Variabelwerte zwischenspeichern und danach sortiert nach $ExpDate zurückgeben.

 

und du erwartest, dass wir aus deinem ersten und dritten Post auf diese Aufgabenstellung schliessen sollen? :rolleyes:

Edited by blub

Share this post


Link to post
Share on other sites
Wie sieht das Text File aus?

Du suchst ein Array bzw. Hash Tabelle.

 

Der Tipp von Dukel hat mich doch weitergebracht.

 

Ich habe ein TXT File:

 "hans" 03.08.2009 16:50,
"Test-ok" 11.04.2010 15:21,
"test-Warning" 17.08.2009 13:30,
"Users" 23.04.2009 18:06,
"aaa" 23.04.2004 18:12,
"bbbbbbb " 23.04.2006 18:38

 

Dieses File kann ich einlesen und ausgeben. Leider verstehe ich die Sortierung noch nicht ganz.

 

$UserExpTable  = @()

$Users = Get-Content "Users.txt"


foreach ($line in $Users)
{
$Name = $line -match '"(.*)"' 
$Name = $Matches[1]
$ExpDate = $line -match '\d{2}\.\d{2}\.\d{4}'
$ExpDate = $Matches[0]
$ExpDate = [datetime]::ParseExact($ExpDate, "dd.MM.yyyy", $null)

$UserExpTable += @{$Name="$ExpDate"}
}
$UserExpTable.GetEnumerator() | Sort-Object Value

 

zurück bekommen ich

Name                       Value
----                           -----           
Users                          04/23/2009 00:00:00    
aaa                            04/23/2004 00:00:00 
bbbbbbb                        04/23/2006 00:00:00 
hans                           08/03/2009 00:00:00 
Test-ok                        04/11/2010 00:00:00
test-Warning                   08/17/2009 00:00:00         

 

Die Sortierung funktioniert nicht nach Name und auch nicht nach Value.

 

1000 Dank für eure Hilfe!

Share this post


Link to post
Share on other sites

Der Fehler wurde erkannt:

$UserExpTable = @()

Es braucht keine runden Klammern, sondern geschweifte!

$UserExpTable = @{}

Share this post


Link to post
Share on other sites
Der Fehler wurde erkannt:

$UserExpTable = @()

Es braucht keine runden Klammern, sondern geschweifte!

$UserExpTable = @{}

 

Klar. Sonst ists ein Array und keine Hash Tabelle.

Share this post


Link to post
Share on other sites
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...