Actions
Feature #16741
openImplement 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) about 2 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) about 2 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) about 2 years 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) about 2 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