2011-09-12 22 views
3

PDFSamのコンソールを使用してPDFファイルを分割してマージしています。私は.BATファイルを使用して、この半自動的に行うことができますが、私は私の.batファイルにR.shell()を使用して.batファイルを実行するR

にこのコードを全体のことをしたいと思っ作品:

C: 
cd "/Program Files/pdfsam/bin/" 
run-console.bat -f "d:/delete/A_9.pdf" -o d:/delete -s BURST -overwrite split 

しかし、この「同等」のコード私のRシェルコマンドでエラーは返されませんが、動作していないようです。

shell('C: 
cd "/Program Files/pdfsam/bin/" 
run-console.bat -f "d:/delete/A_9.pdf" -o d:/delete -s BURST -overwrite split') 

シェルコマンドにオプションがありません。私はいくつかのオプションを試してみましたか?

私は、Windows XPと Rのバージョンを使用してい2.13.1(2011-07-08) プラットフォーム:I386-PC-MINGW32/i386の(32ビット)

おかげで、 トム

+1

多分 'shell(" c:/ program files/pdfsam/bin/run-console.bat -f ... '? –

+0

は 'shell()'のみのWindowsコマンドですか? –

+0

残念ながら、run-console.batはbinディレクトリ(つまり、cdコメント)内で実行する必要があります。 – Tom

答えて

4

あなたが動作するはずですので、以下、&によってそれらを連結してシェルに複数のコマンドを渡すことができます。

shell('C: & cd C:/Program Files/pdfsam/bin & run-console.bat -f "d:/delete/A_9.pdf" -o d:/delete -s BURST -overwrite split') 

しかし、あなたは一時的な変更のR作業ディレクトリを可能性の回避策として:あなたの場合

current.wd <- getwd() 
setwd("C:/Program Files/pdfsam/bin") 
shell('run-console.bat -f "d:/delete/A_9.pdf" -o d:/delete -s BURST -overwrite split') 
setwd(current.wd) 

shell.in.dir <- function(dir, ...) { 
    current.wd <- getwd() 
    on.exit(setwd(current.wd)) 
    setwd(dir) 
    shell(...) 
} 

shell.in.dir("C:/Program Files/pdfsam/bin", 
    'run-console.bat -f "d:/delete/A_9.pdf" -o d:/delete -s BURST -overwrite split') 
+0

絶対に素晴らしいです。ありがとう、マレック。 3つのオプションはすべて素晴らしいです! – Tom

+0

私は 'shell( 'run-text2pdf.bat')'を使って単一の.batファイルを実行しようとしていますが、 'run-text2pdf.bat 'というエラーメッセージが表示されますが、 操作可能なプログラムまたはバッチファイル。 警告メッセージ: 1:実行中のコマンド 'C:\ WINDOWS \ SYSTEM32 \ CMD.EXE/- text2pdf.bat実行C' ステータス1 2をしていた:シェルでは( "実行-text2pdf.batを"): 「ランtext2pdf.bat '実行がエラーコード1で失敗しました。どうしたのですか? –

+0

@PragyadityaDas詳細をつけて新しい質問をしてください... – Marek

0

これはあなたの質問に対する答えではありませんが、代わりにsystem("youBatFile.bat")をお試しください。

+0

ありがとう、 'shell.exec()'を使って)、同じ結果を得ました(結果が不足しています)。 – Tom

関連する問題