Einstieg in die PowerShell

Heute habe ich mal zum Einstieg in die Windows PowerShell ein kleines Script erstellt, dass meine RSSOwl-Konfigurationsdatei auf meinen FTP-Server kopiert bzw. von dort herunterlädt. Die Datei ständig manuell zwischen 3 PCs (Arbeit, Privat, Laptop) zu synchronisieren ging mir mit der Zeit doch auf den Senkel…

Das Script basiert auf einem Beispiel von Joannes Vermorel. Ich habe es nur ein wenig erweitert. Das fertige Script sieht nun wie folgt aus. Es benötigt lediglich einen Parameter: up oder down.

Param ($UpDown = "up"); $Server = "ftp.server.com"; $User = "username"; $Password = "password"; function ExecuteFTPCommands($FileCommand) { $FtpCommandFilePath = [System.IO.Path]::GetFullPath("FTPCommand.tmp"); $FtpCommands = @( $User, $Password, "cd RSSOwl", "bin", "quote pasv", $FileCommand, "quit" ); $FtpCommand = [String]::Join( "`r`n", $FtpCommands ); set-content $FtpCommandFilePath $FtpCommand; ftp "-s:$FtpCommandFilePath" $Server; remove-item $FtpCommandFilePath; } # Get path of local user profile $UserProfile = $env:UserProfile; $RSSOwlPath = $UserProfile + "\.rssowl"; $RSSOwlFile = $RSSOwlPath + "\user.xml"; # check whether RSSOwl's config file exists if (!(Test-Path $RSSOwlFile)) { write-host ("RSSOwl file not found: " + $RSSOwlFile) -foregroundcolor "red"; exit; } if ($UpDown.equals("up")) { write-host "Uploading RSSOwl's config file..." -foregroundcolor "green"; $FtpUploadCommand = 'PUT "' + $RSSOwlFile + '"'; ExecuteFTPCommands([string]$ftpUploadCommand); } elseif ($UpDown.equals("down")) { write-host "Downloading RSSOwl's config file..." -foregroundcolor "green"; $FtpUploadCommand = 'GET "user.xml"'; ExecuteFTPCommands([string]$ftpUploadCommand); Move-Item user.xml $RSSOwlPath -force; C:\Programme\RSSOwl\rssowl.exe } else { write-host ("Wrong parameter: " + $UpDown + "`nAllowed: 'up' or 'down'") -foregroundcolor "red"; }

Über Stefan

Polyglot Clean Code Developer

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax