Да, вы можете сделать что-то подобное, хотя я не думаю, что вы можете использовать "=" в качестве разделителя токенов.Вы можете использовать, скажем, двоеточие ":", somebatchfile.bat "SOURC:originalFile.txt" "TARGET:newFile.txt"
.Вот пример того, как вы могли бы разделить токены:
@echo off
set foo=%1
echo input: %foo%
for /f "tokens=1,2 delims=:" %%a in ("%foo%") do set name=%%a & set val=%%b
echo name: %name%
echo value: %val%
Запуск этого приведет к следующему:
C:\>test.bat SOURC:originalFile.txt
input: SOURC:originalFile.txt
name: SOURC
value: originalFile.txt
[Edit]
Хорошо, возможнопрошлым вечером я был слишком близко ко сну, но сегодня утром снова посмотрев, вы можете сделать следующее:
@echo off
set %1
set %2
echo source: %SOURCE%
echo target: %TARGET%
Что может привести к этому (обратите внимание, что я изменил источник и цель в командной строке, чтобы показатьустановить и получить правильно):
C:\>test.bat "TARGET=newFile.txt" "SOURCE=originalFile.txt"
source: originalFile.txt
target: newFile.txt
Обратите внимание, что% 1 и% 2 оцениваются до set
, поэтому они устанавливаются как переменные среды.Они должны однако указываться в командной строке.