Feature #16741
Implement Shellwords.shellescape correctly for Windows
Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
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
Updated by znz (Kazuhiro NISHIYAMA) 10 months ago
I think adding Shellwords.cmdescape
is better than changing Shellwords.shellescape
.
Some environments on Windows support both bash and cmd.
Updated by mame (Yusuke Endoh) 10 months ago
I agree with @znz. IMO, a gem named cmdwords
or something would be a good start for the feature instead of directly extending shellwords
.
Updated by sawa (Tsuyoshi Sawada) 10 months ago
- Description updated (diff)
- Subject changed from Implement Shellwords.shellescape correctly on Windows to Implement Shellwords.shellescape correctly for Windows
Updated by nobu (Nobuyoshi Nakada) 10 months ago
I'm curious for what purpose you need to escape paths.
To pass it to another program, it is better to spawn
or system
with split array.