Yori (advanced CMD replacement)

Submit command line tools that you find here.
Message
Author
User avatar
Midas
Posts: 6912
Joined: Mon Dec 07, 2009 7:09 am
Location: Sol3

Yori (advanced CMD replacement)

#1 Post 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.


Image


Download Yori latest release (currently v0.95, dated 2018-06-03, no changelog) from http://www.malsmith.net/yori/.

User avatar
Midas
Posts: 6912
Joined: Mon Dec 07, 2009 7:09 am
Location: Sol3

Re: Yori (advanced CMD replacement)

#2 Post 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

User avatar
webfork
Posts: 10836
Joined: Wed Apr 11, 2007 8:06 pm
Location: US, Texas
Contact:

Re: Yori (advanced CMD replacement)

#3 Post 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.

User avatar
Midas
Posts: 6912
Joined: Mon Dec 07, 2009 7:09 am
Location: Sol3

Re: Yori (advanced CMD replacement)

#4 Post 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.

Image

Personally, I would appreciate easy-to-follow instructions to make Yori the default system CLI.

User avatar
Midas
Posts: 6912
Joined: Mon Dec 07, 2009 7:09 am
Location: Sol3

Re: Yori (advanced CMD replacement)

#5 Post by Midas »

Yori v0.99 released, dated 2019-02-26 (changelog at http://www.malsmith.net/yori/changelog/).

billon
Posts: 842
Joined: Sat Jun 23, 2012 4:28 pm

Re: Yori (advanced CMD replacement)

#6 Post by billon »

Yori v1.00 released

User avatar
Midas
Posts: 6912
Joined: Mon Dec 07, 2009 7:09 am
Location: Sol3

Re: Yori (advanced CMD replacement)

#7 Post by Midas »

Cool! :mrgreen:
  • Fix installer shortcuts on XP ...

User avatar
Midas
Posts: 6912
Joined: Mon Dec 07, 2009 7:09 am
Location: Sol3

Re: Yori (advanced CMD replacement)

#8 Post 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:

Code: Select all

> ypm -u
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:

Image

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

User avatar
Midas
Posts: 6912
Joined: Mon Dec 07, 2009 7:09 am
Location: Sol3

Re: Yori (advanced CMD replacement)

#9 Post 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

billon
Posts: 842
Joined: Sat Jun 23, 2012 4:28 pm

Re: Yori (advanced CMD replacement)

#10 Post by billon »


User avatar
webfork
Posts: 10836
Joined: Wed Apr 11, 2007 8:06 pm
Location: US, Texas
Contact:

Re: Yori (advanced CMD replacement)

#11 Post 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.

User avatar
Midas
Posts: 6912
Joined: Mon Dec 07, 2009 7:09 am
Location: Sol3

Re: Yori (advanced CMD replacement)

#12 Post 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.

User avatar
Midas
Posts: 6912
Joined: Mon Dec 07, 2009 7:09 am
Location: Sol3

Re: Yori (advanced CMD replacement)

#13 Post 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.

billon
Posts: 842
Joined: Sat Jun 23, 2012 4:28 pm

Re: Yori (advanced CMD replacement)

#14 Post by billon »


User avatar
h3kt0r
Posts: 148
Joined: Tue Jan 20, 2015 2:50 am
Location: France

Re: Yori (advanced CMD replacement)

#15 Post 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.

Post Reply