Я изменил каталоги и командные среды с помощью переключателя perl -x
, чтобы выполнить код Perl, встроенный в файл.
@rem = '--*-Perl-*--'
@echo off
set TMPBAT=%TMP%\%0_temp.bat
perl -x -S %0 %*
if %errorlevel% == 2000 goto cleanup
goto endofperl
#!perl
#line 9
use strict;
use warnings;
use BatchTool;
__END__
:endofperl
if exist %TMPBAT% call %TMPBAT%
:cleanup
set TMPBAT=
BatchTool
- это модуль, который записывает команды DOS в $ENV{TMPBAT}
, если 1) он не существует или 2) старше исходного скрипта.