Page 1 of 2
Yori (advanced CMD replacement)
Posted: Tue Jun 26, 2018 2:37 am
by Midas
Yori (
http://www.malsmith.net/yori/) is an interesting take on what the Windows command line console should be able to do. Highlights are native command aliasing and enhanced tab completion, as well as the less evident internal use of a '
\\?\...' based syntax to reference filesystem objects, making it less prone to being tricked.
Documentation is scant, to say the least, but
Yori is FLOSS released under a MIT license in both 32 and 64-bit versions that, as expected, behave portably if (
Uni)extracted.
Yori comes with an extensive list of both internal and external commands, mostly fashioned after a mix of Windows and Linux default ones -- one thing I found distracting and annoying was the lengthy license notices displayed when consulting help, exceeding by far any help provided.
Yori is a CMD replacement shell that supports backquotes, job control, and improves tab completion, file matching, aliases, command history, and more.
Download
Yori latest release (currently v0.95, dated 2018-06-03, no changelog) from
http://www.malsmith.net/yori/.
Re: Yori (advanced CMD replacement)
Posted: Mon Oct 15, 2018 6:40 am
by Midas
Yori v0.97 released, dated 2018-09-11 (changelog added:
http://www.malsmith.net/yori/changelog/).
There's also a user guide now:
http://www.malsmith.net/yori/guide/.
Alas, the download provided is now a web-installer, couldn't find any EXE archives like before...
EDIT: after some snooping around, I was able to grab the CAB archives of latest release with these commands.
Code: Select all
> wget http://www.malsmith.net/download/?obj=yori/latest-stable/yori-core-amd64.cab
> wget http://www.malsmith.net/download/?obj=yori/latest-stable/yori-typical-amd64.cab
> wget http://www.malsmith.net/download/?obj=yori/latest-stable/yori-extra-amd64.cab
> wget http://www.malsmith.net/download/?obj=yori/latest-stable/yori-core-win32.cab
> wget http://www.malsmith.net/download/?obj=yori/latest-stable/yori-typical-win32.cab
> wget http://www.malsmith.net/download/?obj=yori/latest-stable/yori-extra-win32.cab
Re: Yori (advanced CMD replacement)
Posted: Mon Oct 15, 2018 12:24 pm
by webfork
I didn't test it thoroughly as I had a specific need for this and couldn't setup a before-and-after install comparison. Usually command line tools are fully portable so ...
* There's some things Linux commandline could learn from here, including the soft gray text for suggested file endings. That's fantastic and hard to go back from once you have it.
* The lack of documentation is a concern. I don't have any idea what yerase.exe does for example. Does it wipe files? It doesn't say.
Re: Yori (advanced CMD replacement)
Posted: Tue Oct 16, 2018 2:55 am
by Midas
webfork wrote: ↑I don't have any idea what yerase.exe does for example. Does it wipe files? It doesn't say.
That's an easy one...
Code: Select all
> yerase -?
Erase 0.97
Delete one or more files.
ERASE [-license] [-b] [-r] [-s] <file> [<file>...]
-b Use basic search criteria for files only
-r Send files to the recycle bin
-s Erase all files matching the pattern in all subdirectories
Plus, the dev might be seeing our notes, as some of my previous niggles have been addressed...
Regarding portability, see below the web-installer dialog screenshot --
Yori will remain portable as long as you don't set some of the right-hand side box options.
Personally, I would appreciate easy-to-follow instructions to make
Yori the default system CLI.
Re: Yori (advanced CMD replacement)
Posted: Sun Mar 31, 2019 7:21 am
by Midas
Yori v0.99 released, dated 2019-02-26 (changelog at
http://www.malsmith.net/yori/changelog/).
Re: Yori (advanced CMD replacement)
Posted: Wed May 01, 2019 3:42 am
by billon
Yori v1.00 released
Re: Yori (advanced CMD replacement)
Posted: Thu May 02, 2019 4:19 am
by Midas
Cool!
- Fix installer shortcuts on XP ...
Re: Yori (advanced CMD replacement)
Posted: Thu Oct 17, 2019 4:46 am
by Midas
In case someone already knows this, any info on how to change
Yori's default configuration -- something like DOS' '
autoexec.bat' -- would be very welcome by me.
FYI, you you have an older version of
Yori, updating is as easy as starting it and issuing the following command:
Another enhancement that slipped by me in recent updates -- as it is not included in the default list of commands (see below) -- is that
Yori now includes a menu utility, invoked by external command
YUI.
Here's a sample capture:
And here's the list of
Yori's current default commands, easily accessed by issuing the
HELP command.
Code: Select all
For more information about a command, run <command> /?
ALIAS Displays or updates command aliases
ASSOC Display or edit file associations
BUILTIN Executes a command explicitly as a builtin
CAB Compress or decompress cabinet archives
CAL Display the calendar
CALL Call a subroutine (only valid in scripts)
CHDIR Changes the current directory
CLIP Manipulate clipboard state including copy and paste
CLMP Multi process compiler wrapper
CLS Clears the console
COLOR Change the active color or all characters on the console
COMPACT Compress or decompress individual files
COPY Copies one or more files
CSHOT Captures previous output on the console and outputs it
CUT Outputs a portion of an input buffer of text
CVTVT Converts text with VT100 color escapes into another format
DATE Outputs the system date and time in a specified format
DF Display disk free space
DIR Enumerate the contents of directories in a traditional way
DIRENV Apply environment changes from per-directory scripts
DOS2UNIX Convert line endings to UNIX (LF) form
DU Display disk space used within a directory tree
ECHO Outputs text
EDIT Open a file for editing
ENV Set environment variables and launch a program
ENDLOCAL Pop a previous saved environment from the stack (only valid after SETLOCAL)
ERASE Delete one or more files
ERR Display the text for a Windows error code
EXIT Exits the shell
EXPR Evaluate simple arithmetic expressions
FALSE Return false
FINFO Output information about file metadata
FG Display the output of a background job in the foreground
FOR Enumerates through a list of strings or files
FSCMP Test for file system conditions
FTYPE Display or edit file types used in file associations
GET Fetches objects from HTTP and stores them in local files
GRPCMP Returns true if the user is a member of the specified group
GOTO Goto a label in a script
HASH Calculates the hash of a file or set of files
HELP Displays this help text
HEXDUMP Display a stream of data as hex
HILITE Output the contents of one or more files with highlight on lines matching specified criteria
ICONV Convert the character encoding of one or more files
IF Execute a command to evaluate a condition
INCLUDE Include a script within another script (only valid in scripts)
INITOOL Query or set values in INI files
INTCMP Compare two integer values
JOB Displays or updates background job status
KILL Terminate one or more processes
LINES Count the number of lines in one or more files
LSOF Display which processes have a file in use
MEM Display memory usage information
MKDIR Creates directories
MKLINK Creates hardlinks, symbolic links, or junctions
MORE Displays text one page at a time with scrolling
MOUNT Mounts or unmounts an ISO image
MOVE Moves or renames one or more files
NICE Runs a child program at low priority
OSVER Outputs the operating system version in a specified format
PATH Converts relative paths into decomposable full paths
PAUSE Prompt the user to press any key before continuing
POPD Pop a previous current directory from the stack (only valid after PUSHD)
PS Display a list of processes in the system
PUSHD Push the current directory onto a stack and change to a new directory
READLINE Inputs a line and sends it to output
REM Ignore command
RETURN Return from a subroutine (only valid after CALL)
RMDIR Removes directories
SCUT Create, modify, display or execute Windows shortcuts
SDIR Enumerate directories with color in a compact form
SET Displays or updates environment variables
SETLOCAL Push the current directory and environment onto a saved stack
SETVER Lie about Windows version and launch a program
SHIFT Shift command arguments left by one (only valid in scripts)
SHUTDN Shutdown, reboot or logoff the system
SLEEP Waits for a specified number of seconds
SPLIT Split a file into pieces
SPONGE Read input into memory then output, allowing rewrite of input
START Ask the shell to open a file
STRCMP Compare two strings
STRIDE Output lines periodically from input stream
SYNC Flush a file, directory or volume
TAIL Output the final lines of one or more files
TEE Output the contents of standard input to standard output and a file
TIMETHIS Time how long a program takes to execute
TITLE Get or set the console window title
TOUCH Create a file or update its timestamps
TRUE Returns true
TYPE Output the contents of one or more files
UNIX2DOS Convert line endings to Windows (CRLF) form
VER Outputs the Yori version in a specified format
VOL Outputs volume information in a specified format
WAIT Wait for one background job or all jobs to finish executing
WHICH Searches a semicolon delimited environment variable for a file
WININFO Return window information including size or position
WINPOS Set window size or position
YCHARMAP Display the character map
YDBG Debug processes
YORI Launch the Yori shell
YPM Install, uninstall, or update software packages
YS Executes a Yori script
Re: Yori (advanced CMD replacement)
Posted: Thu Oct 17, 2019 5:37 am
by Midas
Midas wrote: ↑In case someone already knows this, any info on how to change
Yori's default configuration -- something like DOS' '
autoexec.bat' -- would be very welcome by me.
Never mind me, I just found this in
Yori's v1.0 changelog:
- Execute ~\YoriInit.d and ~AppDir\YoriInit.d scripts on start
Re: Yori (advanced CMD replacement)
Posted: Sat Jul 18, 2020 4:12 pm
by billon
Re: Yori (advanced CMD replacement)
Posted: Sat Jul 18, 2020 6:22 pm
by webfork
1.30 - 18 Jul 2020
Changelog:
Add support for process times in ps
Add support for line ending conversions in iconv
Common Ctrl+key combinations from bash
Improved completion script capabilities and simple git completion script
Pushd with no arguments swaps current directory and most recently pushed directory
Many improvements for NT 3.5 and 3.51
Fix uninstall option in setup
New tool - assoc (and ftype) for editing file associations
New tool - edit for editing files similar to MS-DOS edit
Side note: I spent a huge amount of time recently trying to solve various problems with showing regular code highlighting in standard documents, so it feels almost quaint next to this program's rich text copy function, as noted on the home page (in short, select the content in the Yori window and paste into most editors that support formatting e.g. LibreOffice or Wordpad).
EDIT: I again want to endorse additional documentation. I tried a few utilities included and couldn't make heads or tails with included help.
Re: Yori (advanced CMD replacement)
Posted: Sun Jul 19, 2020 3:25 am
by Midas
webfork wrote:I tried a few utilities included and couldn't make heads or tails with included help.
That's been my main problem with
Yori, too. IMHO, the dev should setup a forum or (better yet) a wiki, so users could at least chime in... it would be a pity to see such great effort go to waste because the user base stalls for lack of knowledge building.
Re: Yori (advanced CMD replacement)
Posted: Wed Aug 26, 2020 1:16 pm
by Midas
Case in point: it took me many tries to figure out what date format Yori's touch external command expects (in my case?): yyyy/mm/dd:HH:MM:SS.
Re: Yori (advanced CMD replacement)
Posted: Tue Nov 10, 2020 9:25 pm
by billon
Re: Yori (advanced CMD replacement)
Posted: Wed Nov 11, 2020 4:12 am
by h3kt0r
@midas :
Personally, I would appreciate easy-to-follow instructions to make Yori the default system CLI.
1. Press [Windows] + [Pause] to open the "System Properties" dialog.
2. Go to the "Advanced" tab. Push the "Environment Variables" button.
3. In the "System Variables" listbox, search for the "Comspec" variable. Double-click it to modify.
4. In the "System Variable" editbox, paste the full path to Yori between quotes.
5. Click "OK", "Apply". You may have to logout or reboot for the changes to apply.