Мне нужно передать построенную строку из R в Windows Powershell.Строка выглядит примерно так:
http://www.host.com/cgi-bin/something.pl?file=filename"&"argument=on"&"argument2=on"&"dir=directory
К сожалению, R добавляет обратную косую черту к строке выше, если я создаю ее с помощью "paste":
fname <- gsub(' ', '', gsub('\n', '',paste('http://www.host.com/cgi-bin/something.pl?
file=',filename,'"&"
argument=on"&"
argument2=on"&"
dir=',directory,'"&",
sep='')))
В R переменная fname теперь содержит следующую строку:
'http://www.host.com/cgi-bin/something.pl?file=filename\"&\"argument=on\"&\"argument2=on\"&\"dir=directory
При передаче на powershell с помощью команды
system("powershell Invoke-WebRequest 'http://www.host.com/cgi-bin/something.pl?file=filename\"&\"argument=on\"&\"argument2=on\"&\"dir=directory' -outfile C:\test.dat")
PowerShell, конечно, жалуется из-за обратной косой черты.
cat fname
печатает строку в R-оболочке так, как она должна быть передана в PowerShell (а именно без обратной косой черты):
http://www.host.com/cgi-bin/something.pl?file=test"&"argument=on"&"argument2=on"&"dir=somedir
Я думал записать команду в файл,выполнение системной команды, похожей на «sed» (например,
"powershell get-content somefile.txt | %{$_ -replace "expression","replace"}")
, для удаления обратной косой черты в файле и передачи файла в качестве команды в PowerShell. Но у меня снова возникнут проблемы с передачей обратной косой черты »Выражение "от R до PowerShell. Есть идеи?
Воспроизводимый код:
filename <- "test"
directory <- "somedir"
fname <- gsub(' ', '', gsub('\n', '',paste('http://www.host.com/cgi-bin/something.pl?
file=',filename,'"&"
argument=on"&"
argument2=on"&"
dir=',directory,
sep='')))
system(paste('powershell Invoke-WebRequest ',fname,' -outfile C:\\Windows\\temp\\test.dat',sep=""))