The 0.13.0 update seems to have broken the commander widget for me. I'm on Windows (not by choice). I have Git installed, so I have the Git provided bash shell and terminal (Mintty) and the installation option which allows me to execute the provided Unix tools from cmd.exe. I'm nowhere near as comfortable with DOS commands/batch files as I am with bash.
Yesterday, I had a script with contents to the effect of "ls | grep -E <pattern> | sed -r <pattern> > file.txt" and a Commander widget with the command "sh script.sh". It worked fine. Today, after updating, it does nothing. The terminal doesn't even open. I've tried embedding the script contents directly in the widget, deleting and recreating the widget, restarting the application and deleting and recreating the widget, and changing the terminal in the new application setting. No joy.
It's worth noting that I have a total of four separate terminals installed presently. The default Windows cmd.exe, Git Bash (Mintty), ConEmu, and Hyper. The only options I see in the application setting are cmd.exe, ConEmu, and ConEmu64, none of which fix the issue. It would be nice if I could browse to and select the shell binary if I wanted, so that I could just navigate to bash.exe and pick that. But, at this point, I'd be happy with cmd.exe working again.
For now, I can just run the shell script by double-clicking it in the file explorer widget, but the commander was awfully convenient.
@scorbeil Thanks for the detailed report! Please try to execute "%comspec%" command (via Windows' Start > Run or from a terminal). What happens?
@scorbeil Alternative you may use the Opener widget. I think it would be a better solution for this scenario.
- Add Bash to Toolkit.
- Then add Opener widget and configure it to open the script.sh with Bash.
Please check if that works ok for you.
The output of %comspec% is ...
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved.
The Opener seems to do nothing as well. Here's a screenshot of the config.
FYI, I tried uninstalling and reinstalling 0.13.0, which did not fix the issue. I uninstalled and installed 0.12.0 (still had the installer from previous download) and the Commander is fixed but the Opener does not work as configured in the screenshot above. I never tried the Opener before in 0.12.0, so my guess is that this was always the case.
@scorbeil Can you enable the default Terminal in the application settings and add 'pause' command as a last command line, after the "ls | grep -E <pattern> | sed -r <pattern> > file.txt" in the commander widget, and try to execute it. What do you see after the execution?
I did try this before, but I did it again just now to re-verify (0.13.0 reinstalled). Tried with "sh script.sh & pause" as well as two separate command lines in the Commander. Neither did anything when the button is clicked.
@scorbeil What about a simple "dir & pause" command? Still nothing?
Still nothing. For sake of thoroughness, I checked the "Ask Confirmation" box, too. I do get the confirmation dialog popping up when I click the button, but nothing happens when I click "Execute".
@scorbeil Ok. I've made a build that would help us to finally catch the bug (I hope ): https://freeter.io/download/FreeterSetup-shtest.exe . It has multiple execution methods and would ask you to choose one when you push the commander button. Please download/launch it, and execute the "dir & pause" command with all the proposed methods. And post the results for each one.
Note: I have scrolled down to obscure the file names and marked out paths in red as they contain project info and my employer is paranoid. All dirs printed except as otherwise noted.
- Method A1: Nothing
- Method B2: Opens a console, prints the dir and pauses. After pressing enter, the terminal closes.
- Method C3: Nothing
- Method D4: Nothing
- Method E5: Opens a console, prints the dir, followed by the message "Not enough storage is available to process this command." Does not pause. Goes to prompt. Had to close terminal manually.
- Method F6: Opens a console, prints the dir, goes to prompt. No pause. Manual close.
- Method G7: Opens a console, prints the dir, pauses. Terminal closes when I press enter.
- Method H8: Opens a console, prints the dir, pauses. Terminal closes when I press enter.
@scorbeil Thank you so much! No prob with the red paths That's really helpful!
Can you play more with the B2 in your commander widgets and check if your command lines execute ok. Going to switch Commander to the B2 in the tomorrow hotfix release, if everything works good.
That seems to do it. In fact, I took the contents of the script out and put it straight in the commander widget and it runs without the script file now. That didn't work before in 0.12.0, so this seems to be an improvement.
Awesome! Thank you for your help in improving Commander widget!
You're welcome. Thanks for making Freeter. It's pretty awesome so far. Still in my trial, but planning on buying it very soon.
Just confirming that I got the notice to update today, uninstalled the test build (just in case), installed 0.13.2 and the Commander widgets work great, even with the command directly in the widget, rather than in a script file. Thanks again!
Thanks for confirming that it's working for you!
Is this fixed on 1.0.0? I'm trying to run this command:
"C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\msbuild.exe" C:\Solution\Project\MySolution.sln /p:Configuration=Release /t:Clean;Rebuild /p:Platform="Any CPU"
Followed by a "pause" so I can see the outcome. But what I get is a:
'""C:\Program' is not recognized as an internal or external command, operable program or batch file.
I've tried escaping the quotes with two quotes (""), backslash (") or with single quotes ('') with no success.
Here's my %comspec%:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. All rights reserved.
Thanks for reporting the issue! Your command doesn't run due to a bug in the quote-escaping procedure. It's already fixed and you'll be able to execute commands containing quotes in the next version.
@Cleyton-Bruno Done. Fixed in 1.1.0. Please check if it executes the command.