Обратная косая черта имеет особое значение в строке в кавычках Perl. Он используется для экранирования следующего символа - для «выключения» какого-либо специального значения. Если вы хотите использовать обратную косую черту в строке в кавычках Perl, вам нужно использовать другую обратную косую черту, чтобы избежать ее.
my $cmd = 'xcopy /Y c:\\DBs\\Support\\db.bak c:\\jenkins\\workdir\\sql-bak-files';
В качестве альтернативы, Perl распознает прямую косую черту в путях Windows, так что может быть проще заменитьваш код с этим:
my $cmd = 'xcopy /Y c:/DBs/Support/db.bak c:/jenkins/workdir/sql-bak-files';
Обратите внимание, что в обоих случаях я заменил ваши двойные кавычки на одинарные. Это никак не повлияет на вашу проблему, но кажется странным использовать строки в двойных кавычках, если вы не используете какие-либо из их специальных характеристик (например, расширение переменных).
Обновление: Для устранения проблемы, подобной этой, вы можете попробовать print
в строке.
$ perl -E'say "xcopy /Y c:\DBs\Support\db.bak c:\jenkins\workdir\sql-bak-files"'
xcopy /Y c:DBsSupportdb.bak c:jenkinsworkdirsql-bak-files