2

What is this scripting and how it is using .NET 4.5? Is it C# scripting? PowerShell Scripting? VBA Scripting?

I've found this answer in another question and was curious about it. As it's using .NET 4.5, I tried using the same methods in my .NET 4.7 solution and it wasn't available in Intellisense. Also I don't understand how you can call .NET 4.5 in that way from PowerShell and whey it would differ from the methods I get from my SDK?

The below code was submitted by @MDMarra

[Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem")
$Compression = [System.IO.Compression.CompressionLevel]::Optimal
$IncludeBaseDirectory = $false

$Source = "C:\Path\To\Source"
$Destination = "C:\CoolPowerShellZipFile.zip"

[System.IO.Compression.ZipFile]::CreateFromDirectory($Source,$Destination,$Compression,$IncludeBaseDirectory)

Does Windows have a built-in ZIP command for the command line?

2 Answers2

4

powershell is [mostly] built on top of dotnet. it has many ways to access the underlying dotnet code, c# code, compiled DLL code, etc. the PoSh cmdlets are designed for easy use & readability. however, direct access to the guts of things is somewhat faster & may allow more control in some situations.

so, the process of doing so is made fairly easy. [grin]

as for file compression, yes, there is a cmdlet for that nowadays: Compress-Archive, which is a wrapper around the .NET class [System.IO.Compression.ZipArchive]. there was no such cmdlet early on, tho.

Cpt.Whale
  • 297
  • 1
  • 10
Lee_Dailey
  • 215
  • 1
  • 9
  • Awesome. Thanks I also found out that even though I was using the complete namespace to reach the class I still needed the 'using System.IO.Compression.FileSystem' to have the same CreateFromDirectory method available. Thanks for the clarification! – Daniel Paiva Apr 24 '20 at 06:54
  • @DanielPaiva - you are most welcome! glad to know that you got things working as needed ... [*grin*] – Lee_Dailey Apr 24 '20 at 13:41
0

It seems to me as a powershell script that calls System.IO.Compression.FileSystem which is a C# class.

Krackout
  • 1,559
  • 6
  • 17