本記事では、バッチファイルの処理中に違うフォルダに移動し、また元のフォルダに戻ることができる「pushd/popd」コマンドを紹介します。
バッチファイルではフォルダ間を移動する方法として「chdir(cd)コマンド」が導入されていますが、このコマンドは移動先のフォルダの名前を明確に指定する必要があります。
一方、実際フォルダ間の移動を行う場合には、あるフォルダAからBに移動して、Bでの処理が終わったのでAに戻りたいというB→A→Bのような移動が発生するケースが多いと思います。
このような場合に「ushd/popdコマンド」を使うと簡単に元のフォルダに戻ることができます。
早速pushd/popdコマンドの使い方について紹介します。
pushd [移動先フォルダの名前]
上記の文法で、[移動先フォルダ]に移動することができます。このとき、どのフォルダからどのフォルダに移動したかの履歴が記録されます。
popd
popdは特にフォルダ名を指定する必要はなく、書くだけです。これにより、履歴を参照して一つ前のフォルダに戻ることができます。
履歴は複数記録できるので、フォルダAから「pushd B」「pushd C」とフォルダA→B→Cと移動した場合に、「popd」を2回行うことでフォルダA→B→C→B→Aと複数回戻ることもできます。
まずは一番シンプルな動作を見てみます。以下のように、「pushpop.bat」と「testdir」と名前の付けたフォルダを、任意の場所に配置します。
pushd testdir
popd
pause
ここで、「pushpop.bat」を実行してみます。これを実行すると、想定動作としてはpushdコマンドで「testdir」フォルダに移動し、popdで戻ることができるはずです。
実際に実行してみると、想定通り「testdir」に移動して、元に戻ることができていることがわかります。