- MSys2 - unix tools for windows
- wsl - Windows subsystem for linux
- Powershell + Powershell ISE - windows shell + dev tool
- starship - prompt config that also works on Powershell
- scoop - package manager (similar to apt and others) installs to your user directory
- The ultimate windows utility - debloat and installer https://christitus.com/windows-tool/
- my dotfiles
I still prefer POSIX stuff, but this way it is acceptable, especially scoop package manager is the most useful tool to save time installing software without admin permissions.
Look for the portable versions of other apps.
PowerShell[2] is the built-in scripting language for Windows (better than BATCH scripts).
I pop into gVim for quick text manipulation tasks.
https://sumatrapdfreader.org is the best PDF reader.
I recommend a launcher like https://keypirinha.com or even the MS PowerToys runner.
Not sure about "install", but I think all of them can be just copied to your Documents/MyApps folder and run from there and/or associated in explorer.
I also write all my cli tools in typescript. It’s just a matter of copying a project from my template and running yarn link. Now it’s available in PATH as <toolname>, links directly to project folder (no need to “reinstall” on changes).
Learn how to add menu items in explorer https://stackoverflow.com/questions/20449316/how-add-context...
In msys usr/bin, copy at least the following: echo, find, grep, mkdir, sort, bash - into `x${name}`, so you can run xfind, xbash, etc to not clash with windows builtins. You’ll cp more tools later, but these are immediately necessary.
Use a cmd-prolog for bash scripts:
script.cmd:
:<<BATCH
@xbash %~dpf0 %*
@exit /b
BATCH
echo "bash here"
Powertoys FancyZones work better for me than any K/G/tiling wms.For Excel, I used `npm i winax` (COM automation) at my last job. You may find it useful for advanced scripting.
Shell: Powershell. It takes some getting used to dealing with objects rather than the "everything is a file/string" world of unix/linux but once you adjust to that, it's wonderful.
Toy programming/scripting: Linqpad. Quickly script tools in C#/.Net.
p.s. On file installation, try winget, or possibly chocolatey. Install via command line, and many of the programs support being installed without admin privileges by installing to the user profile.
Also don't be scared to ask your boss / IT department to install things for you. It's their job to provide you the tools you need.
I'd warn against trying to "hold on" to linux by trying to run everything through emulators or WSL2, it'll just add friction when you want to collaborate with colleagues.
Regarding the rest though, I would say forget windows and shell scripting, and focus instead on learning your tools.
You said Excel was a big part of your job .. I would start by improving skills here. There are a lot of good formulas and tools that it’s important to be aware of to make your job easier.
If you understand pivot tables and vlookup well enough, then I would suggest learning PowerBI
You can even use the excel sheets as your data sources.
Figure this out and you will blow their minds.
Assuming you're just playing around and not trying to build something for business/professional use:
Can you access Powershell at all (the new-ish and improved Windows terminal)? You can write scripts in it.
If you prefer GNU/Linux apps, you can try a portable build of Cygwin (which lets you run Bash and some utils): https://github.com/MachinaCore/CygwinPortable (edit: or see Git Bash, as posted by Leftium: https://news.ycombinator.com/item?id=41052353)
Also check out Portable Apps: https://portableapps.com/apps
As a last resort, you might be able to put Linux on a USB drive (or disk drive, if it has one) and boot into that, if the BIOS lets you. Some of the Live CDs have a "diskless" mode that won't cause any permanent changes to the system.
There's probably also a lot of online tools that can do some of that inside a web browser (like word processors and PDF editors and text manipulation). You can also run code inside codesandbox/codepen/hosted code space of your choice. Or you can look for portable interpreters for Node (Javascript), maybe Python, Lua, etc.
For window management, Windows has some nice shortcuts built-in (like drag a window to a side to fill half the screen, windows+arrow keys to move things around, or Windows+tab or alt-tab to switch between apps, etc.
----------
On the other hand, if you're actually trying to write something for the company, you should probably talk to your IT department about it and collaborate on a solution. Don't write something bespoke that nobody else can maintain once you're gone (or just promoted). Especially if it's actually tied to some industrial processes!
Doing what you love has the potential to completely kill what you love keep that in mind.
https://learn.microsoft.com/en-us/sysinternals/downloads/sys...
A collection of tools that started outside Microsoft and are now very much embraced. Process Monitor does just that, AutoStart shows all the cruft that attaches at startup, to menus, to browsers, etc. FileMonitor .. live and logged file activity, etc.
One for your windows machine at home: PortMaster - it's an "easy use" tiered (free -> paid VPN like additions) variation in the sysInternals TCPView family - monitoring all network connections, tying them back to a process and making accept|deny trivial.
PortMaster requires installion - sysInternals mostly don't, but do report better with admin privileges.
BulkRenameTool is crazy effective if ever you need to organise file names, in a directory, multiple directories, entire subtrees, with or without regular expressions, can add | remove patterns | timestamps, etc. https://www.bulkrenameutility.co.uk/
https://ss64.com/nt/ :: An A-Z Index of Windows CMD commands.
https://ss64.com/ps/ :: An A-Z Index of Windows PowerShell commands
ROBOCOPY:: https://ss64.com/nt/robocopy.html - Windows native Robust File and Folder Copy, in a windows production pipeline this is the tool that can be autostarted to monitor folders and move | copy | backup data | scripts .. useful to move staged data evolution from one machine|location to another.
has a lot of decent tools in one place (select the ones you want, download one exe - run it, it grabs the latest version of everything you selected and installs it with sane options [no toolbars / good location] (I haven't used it in a long time so I am not sure if that's still the case, it gets mentioned here sometimes, so maybe search here about it, get a fresher perspective, i used to use it a lot though.))
https://nakka.com/soft/clcl/index_eng.html - its a clipboard manager you mentioned notepad++ already, it has some useful plugins too
WinCompose - compose key, if you need it. Behaves identically.
Everything - the only usable file search on windows
Process Hacker / Process Explorer - task managers that actually lets you do stuff
Check out the Sysinternals Tools, it brings lots of missing fundamental features to windows.
I heard that knowing Powershell can unlock some kind of superpower, might be worth a look too.
I think there is a .MSI version laying around somewhere?
Maybe not anymore, I'm not finding it :(
Notepad helps. Practicing a life of renunciation helps: everything is pain in Windows.
Avoid if at all possible.
maybe boot it from linux on a usb stick so you can continue to use that.
Here is my recipe: Get yourself a fast SSD or USB drive dedicated to your own windows portable library. Format it as one partition. Make the partition occupy drive letter A:. Having a predetermined drive letter that doesn't change helps with software that's not 100% portable but still stores absolute paths instead of relative ones. Now create a single folder on that drive, like, for example "MyPC" or whatever. Inside that folder create 3 subfolders: Programs, Documents, Install. Always put all your portable programs in the "A:\MyPC\Programs\" folder. Always put all your documents in the "A:\MyPC\Documents\" folder. Put driver files and runtime libraries in the "A:\MyPC\Install\" folder. For all three, feel free to create subfolders as needed, either per topic, per group, or however your brain envisions data trees.
You can find plenty of portable windows software in the links provided below.
Few of my favorites for specific tasks:
- my personal auto-run and launch hooks: https://www.dcmembers.com/skwire/download/splat/
- my personal system tray app/doc shortcuts: http://jacquelin.potier.free.fr/QuickWayToFolders/
- my personal desktop icons: https://www.cylog.org/utilities/toolbox.jsp
- system monitoring utilities: https://learn.microsoft.com/en-us/sysinternals/downloads/pro...
https://github.com/LibreHardwareMonitor/LibreHardwareMonitor
- how to keep secret data on a portable drive: https://www.veracrypt.fr/en/Home.html
Find more portable apps in these libraries:
Dive totally into the Windows world.
My background was star-nix, and when i found myself having to use Windows, I always did something like Cygwin, gvim, etc. Which worked fine.
But it necessarily limited my expertise in Windows. Being an expert in Windows, while working in a Windows environment, should make you a more valuable player.
When someone asks you how you do something, you don't want their eyes to glaze over when you say "First you have to install Cygwin." You make yourself a useless resource in their opinion.
Everything that can be done as a user in *nix can be done in Windows, in some Windows way. Be useful to yourself and your colleagues.
I think.