4 ms·
As a long time *nix user who briefly worked at Microsoft (and therefore on Windows), I was very happy to learn that Powershell is perfectly happy with forward s
by itslennysfault 2y ago
As a long time *nix user who briefly worked at Microsoft (and therefore on Windows), I was very happy to learn that Powershell is perfectly happy with forward slashes in paths. If you tab-complete it switches them to backslashes (which is "fine"), but you can type commands using forward slashes without issue. Also common linux commands (ls, cd, mv, cp) all work in Powershell. It really makes the transition painless.
- Alupis 2y agoI personally have found PowerShell to be obnoxious. It doesn't seem to know what it's supposed to be and tries to be everything all at once. The syntax for commands is super "Microsofty" if you know what I mean. I get around by using Git Bash (which is actually quite good for being a bundled afterthought), cygwin, or lately even WSL containers.
- sbelskie 2y agoWhat different things do you think it is trying to be?
- therein 2y agoI have nothing against PowerShell. I've used it for avoiding detection etc. in the past. Fun tool that surprises and delights in unexpected ways. It is pretty powerful/insane that stuff like this is a part of PowerShell and that's probably what the GP is talking about: Add-Type -TypeDefinition @" using System; namespace DemoCode { public class DemoClass { public static void WriteHello() { Console.WriteLine("Hello"); } } } "@ [DemoCode.DemoClass]::WriteHello() Or LoadLibrary call and invocation from PowerShell. [0] [1] It blurs the lines as to what it is no matter how you look at it. In contrast, try doing that in cmd.exe or invoking a function from a shared object after getting a pointer to it using dlopen through a POSIX shell. [0] - https://www.powershellgallery.com/packages/PSReflect-Functions/1.1/Content/kernel32%5CLoadLibrary.ps1 https://www.powershellgallery.com/packages/PSReflect-Functio... [1] - https://fuzzysecurity.com/tutorials/24.html https://fuzzysecurity.com/tutorials/24.html
- TiredOfLife 2y agoGit Bash, cygwin, WSL containers are all completely different things. PowerShell is a shell like bash, just with a different syntax.
- Nihilartikel 2y agoI work a lot in powershell, and I want to like it. It is built around good ideas.. but oof, every time I have to special case on a return value being either a list or a single item depending on the result-len==1 or not, I die a little inside.
- ScottEvtuch 2y agoI think there are some tricks to ensure a list in pwsh for these sort of operations. I vaguely recall ending variable assignments with a comma to avoid this.
- jiggawatts 2y ago$alwaysList = @( Get-Something )
- naikrovek 2y agoWindows itself is fine with forward slashes as a path separator, as well, though LOTS of userland Windows applications weren’t aware of this and enforced backslashes themselves. Command lines, graphical shells, OS save and open file dialogs do not care if you use slash or backslash, and the Win32 API has never enforced backslashes as a path separator.
- Dwedit 2y agoYou'll be surprised what the Win32 API will accept as a path. You can run 'type \\?\GLOBALROOT\Device\OSDataDevice\Windows\win.ini' at a command prompt, and it will succeed. You can even provide a path like that to MS Paint on the command line, and it will happily open the file. But Shell32 (Windows Explorer and File Load/Save dialogs) won't accept that kind of path.
- wglb 2y agoThis is also true if you e.g. write a C program to create a file whose pathname contains a slash. This is deep within the OS, likely due to posix compatibility