Working with [FileInfo] Object

Often, code needs to check on files, and for example test whether the file exists or exceeds a given size. Here is some commonly used code:

$logFile = "$PSScriptRootmylog.txt"

$exists = Test-Path -Path $logFile
if ($exists)
{
  $data = Get-Item -Path $logFile
  if ($data.Length -gt 100KB)
  {
    Remove-Item -Path $logFile
  }

}

By immediately converting a string path into a FileInfo object, you can do more with less:

[System.IO.FileInfo]$logFile = "$PSScriptRootmylog.txt"
if ($logFile.Exists -and $logFile.Length -gt 0KB) { Remove-Item -Path $logFile }

You can convert any path to a FileInfo object, even if it is not representing a file. That’s what the property “Exists” is for: it tells you whether the file is present or not.

Twitter This Tip! ReTweet this Tip!

Lenovo ZUK Z1 3gb ram 64gb rom Snap801 4100mAh @lightinthebox

Smartfon Lenovo Zuk Z1 w sklepie LINB za kwotę 118,54$ i darmowa wysyłka.
Sklep oferuje dodatkowo płatną usługę zwrotu Vatu jeżeli zostaniemy obciążeni.
Usługa jest dodatkowo płatna 3,08$.

Miałem tego smartfona i wspominam go bardzo dobrze. Podzespoły już nie nowe ale jare. Nowe tańsze smartfony które wychodzą aktualnie w podobnej cenie mają gorsze niż ten smartfon. Oczywiście nie każdy…

Specyfikacja: i unboxing:
LINK

[shortcode id=”178199″/]

Test kamery:

[shortcode id=”178200″/]

VIOFO A119 z GPS V2 @banggood

Świetna kamerka w niskiej cenie z kuponem aktualnie w preorderze, wysyłka po 20 października, aby zwiększyć szansę na dojście kamerki przed Świętami najlepiej wybrać przesyłkę Priority Direct Mail za dodatkowego dolara.

Cena:
63.43$ z kuponem: b48548

Cena w Polsce powyżej 400 zł.

W ostatnim oprogramowaniu 3.3 dostępny tryb parkingowy, jeśli jest starsze można pobrać stąd i zaktualizować:
http://viofo.com.pl/oprogramowanie-do-kamer

Przy okazji jaką dobrać kartę pamięci, bo często powtarza się pytanie, a jest to ważna kwestia, bo często kamerki dostają słabe oceny, bo nie nagrywają, przerywają nagrywanie i ludzie obwiniają kamerkę, a często jest to wina słabej karty pamięci. Najlepszym wyborem jest

Samsung EVO PLUS .

Script Logging Made Easy

Beginning in PowerShell 5, you can use Start-Transcript in any host to log all the output created by your script. Here is how you can easily add logging capabilities to any script:

# add this: ############################
$logFile = "$PSScriptRootmylog.txt"
Start-Transcript -Path $logFile -Append
#########################################

"Hello"

($a = Get-Service)

"I received $($a.Count) services."
Write-Host "Watch out: direct output will not be logged!"


# end logging ###########################
Stop-Transcript
#########################################

Simply add the code in the comment blocks to the start and end of your script. The log file will be created in the same folder the script resides in. Since $logFile uses $PSScriptRoot (the current folder of your script), always make sure you save the script and run it as a script. Else, $PSScriptRoot would be empty.

Just make sure your script outputs all the information you want to see in your logfile. By placing assignments into parenthesis, for example, PowerShell will not just assign the values but also echo them to the output.

One caveat: any input and output will be logged, except for messages written directly to the host using Write-Host. Such messages are always visible only to the user on screen.

Twitter This Tip! ReTweet this Tip!