:: test.bat @echo off echo FOO=foo echo BAR=bar #### for (split /\n/, `test.bat`) { my ($k, $v) = split /=/, $_, 2; $ENV{$k} = $v; } #### :: wrapper.bat @echo off call existing.bat set #### :: existing.bat @echo off set FOO=foo set BAR=bar #### for (split /\n/, `wrapper.bat`) { my ($k, $v) = split /=/, $_, 2; $ENV{$k} = $v; }