Project

General

Profile

Feature #16741

Implement Shellwords.shellescape correctly for Windows

Added by abobrikovich (Alexander Bobrikovich) 8 months ago. Updated 8 months ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:97611]

Description

shellwords module was originally designed and developed for *NIX, and currently works like this:

require 'shellwords'

Shellwords.shellescape("/home/me/test with space.txt")
# => "/home/me/test\\ with\\ space.txt"

Shellwords.shellescape("C:\Program Files")
# => "C:Program\\ Files"

I think it's a good opportunity to extend it to support Windows. According to [2], it looks like using quotations is the only option for paths used in a batch script that have space inside. I propose:

Shellwords.shellescape("C:\Program Files")
# => "\"C:\Program Files\""

Links

  1. https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
  2. https://superuser.com/a/962816/245944
  3. https://ss64.com/nt/syntax-esc.html

Also available in: Atom PDF