ITよろづや

ITの参考になる情報を備忘録代わりに残していきます

Pythonスクリプト内でコマンドライン引数をrobocopyに渡す

Pythonスクリプト内でコマンドライン引数をrobocopyに渡す方法についての情報になります。

 

Pythonスクリプト内でOSのコマンドを使用することができますので、Python内でOSのコマンドを実行することで、少ないスクリプトで色んな処理を実行することが可能です。

 

今回は、robocopyについてですが、以下のサイトの情報が参考になりました。

 

コマンドライン引数をrobocopyに渡すのが難しい(python、html、サブプロセス、バッチ処理

https://living-sun.com/ja/python/719745-having-difficulty-passing-command-line-arguments-to-robocopy-python-html-subprocess-batch-processing.html

 

そして、回答にありますが、以下の書き方でうまく動作しました。

 

import subprocess
subprocess.call(["robocopy",r"c:rob",r"c:rob1", "/nocopy", r"/xd", "gp"])

 

robocopyのオプションはそのまま使えます。

 

以前は、OSのコマンドを使用する場合は、os.systemを使用していたそうですが、今はsubprocessを使用します。

 

ちなみにos.systemも使用することは可能です。以下のように記述するとペイントが起動します。

 

import os
os.system("mspaint")

 

ロジクール ワイヤレスマウス 無線 マウスM185RD 小型 電池寿命最大12ケ月 M185 レッド 国内正規品 3年間無償保証