From: nobu@... Date: 2017-10-20T08:24:19+00:00 Subject: [ruby-core:83419] [Ruby trunk Feature#1482] Kernel.exec doesn't respect COMSPEC environment variable on Windows Issue #1482 has been updated by nobu (Nobuyoshi Nakada). Description updated At least on Windows 10, doesn't `CreateProcess()` honor `COMSPEC` variable now? 1.rb ```ruby p $$; exec("./1.bat") ``` ``` $ COMSPEC="./miniruby.exe -e 'p $$, Process.ppid, ARGV'" ./miniruby -v ./1.rb ruby 2.5.0dev (2017-10-19 trunk 60215) [x64-mswin64_140] 1524 9148 1524 ["/c", ".\\1.bat"] ``` ---------------------------------------- Feature #1482: Kernel.exec doesn't respect COMSPEC environment variable on Windows https://bugs.ruby-lang.org/issues/1482#change-67386 * Author: dolzenko (Evgeniy Dolzhenko) * Status: Assigned * Priority: Normal * Assignee: nobu (Nobuyoshi Nakada) * Target version: 2.2.0 ---------------------------------------- Here is pretty convoluted test case: ```ruby puts ENV["COMSPEC"] # => "C:\WINDOWS\system32\mycmd.exe" File.open("1.bat", "w") { |f| f.write("time") } # create test batch file with command which waits for user input Kernel.exec("1.bat") # now the process tree inspection shows that the "C:\WINDOWS\system32\cmd.exe" is still used to interpret 1.bat ``` ---Files-------------------------------- 0001-win32.c-use-COMSPEC.patch (2.03 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: