Windows PowerShellについても同じことをしてください。
これがPowerShellに相当するものです：
`` `
$ dir1 = 'c：\ path \ to \ dir1'
$ dir2 = 'c：\ path \ to \ dir2'
$ cmd1 = 'あなたのpowershellコマンドはここ{} {}'

get -childitem -path $ dir1 -recurse |where -object {$ _。extension -eq '.csv'} |foreach-object {
    $ file1 = $ _。fullname
    $ file2 = join -path -path $ dir2 -childpath $ file1.substring（$ dir1.length）
    ＆$ cmd1 -f $ file1、$ file2
}
`` `
説明：

get -childitem -path $ dir1 -recurse dir1のすべてのファイルとディレクトリを再帰的にリストします
where -object {$ _。extension -eq '.csv'}は、リストを.csvファイルのみにフィルターします
foreach-objectループフィルタリングされたリストに
$ _は各.csvファイルを表します
$ _。fullName現在の.csvファイルの完全なパスを取得します
結合パスは、dir2のパスを構築します
$ file1.substring（$ dir1.length）dir1でファイルの相対パスを取得します
＆サブプロセスを呼び出して、引数としてファイルパスを使用してコマンド$ cmd1を実行します