При попытке получить информацию о командной строке текущего процесса с использованием wmic
через интерфейс system2
:
system2(
command = "wmic",
args = paste0("process where processid=", Sys.getpid(), " get commandline"),
stdout = TRUE
)
я получаю следующие выходные данные и предупреждения:
[1] "ÿþC" "" "" "" ""
Warning messages:
1: In readLines(rf) : line 1 appears to contain an embedded nul
2: In readLines(rf) : line 2 appears to contain an embedded nul
3: In readLines(rf) : line 3 appears to contain an embedded nul
4: In readLines(rf) : line 4 appears to contain an embedded nul
5: In readLines(rf) : line 5 appears to contain an embedded nul
6: In readLines(rf) :
incomplete final line found on '...\Temp\RtmpaWqnBy\file1284c476b1'
Интересно при использовании system
для получения того же требуемого вывода (информация командной строки о текущем процессе), кажется, работает нормально:
system(
command = paste0("wmic process where processid=", Sys.getpid(), " get commandline"),
intern = TRUE
)
Вывод:
[1] "CommandLine \r" "\"C:\\Program Files\\R\\R-3.6.2\\bin\\x64\\Rgui.exe\" --cd-to-userdocs \r"
[3] "\r"
Также, system2
с stdout = ""
выводит вывод на консоль нормально:
system2(
command = "wmic",
args = paste0("process where processid=", Sys.getpid(), " get commandline"),
stdout = ""
)
CommandLine
"C:\Program Files\R\R-3.6.2\bin\x64\Rgui.exe" --cd-to-userdocs
Я попытался указать аргумент args
для system2
по-разному, но безуспешно. Может ли кто-нибудь дать объяснение предупреждений? Некоторые sessionInfo
ниже:
- R версия 3.6.2 (2019-12-12), работает под: Windows 10 x64
- Платформа: x86_64-w64-mingw32 / x64 (64-разрядная версия)
- языковой стандарт: LC_COLLATE = English_United Kingdom.1252
Некоторые сведения о воспроизведении:
- В активном сеансе R это проблема проявляется только для меня в R Gui, а не, например, в RStudio или сеансе R, запущенном из командной строки (cmd.exe)
- Когда код выполняется при запуске (например, через .Rprofile), он проявляется в R Gui и RStudio, но не в процессах R, созданных из командной строки (cmd.exe)