Actions
Feature #16741
openImplement Shellwords.shellescape correctly for Windows
Status:
Open
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) over 4 years 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) over 4 years ago
I agree with @znz (Kazuhiro NISHIYAMA). 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) over 4 years ago
- Subject changed from Implement Shellwords.shellescape correctly on Windows to Implement Shellwords.shellescape correctly for Windows
- Description updated (diff)
Updated by nobu (Nobuyoshi Nakada) over 4 years 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.
Actions
Like0
Like0Like0Like0Like0