Да, необходимо сделать это вручную. Необходимо будет также решить, как "глубоко" скопировать вещи. Например, предположите, что Автомобиль имеет набор шин - Вы могли сделать мелкий копия набора (таким образом, что, если бы исходный объект изменяет содержание своего набора, новый объект видел бы изменение также), или Вы могли сделать глубокий копия, которая создала новый набор.
(Это - то, где неизменные типы как String
часто пригождаются - нет никакой потребности клонировать их; можно просто скопировать ссылку и знать, что содержание объекта не изменится.)
Я хотел бы отметить, что «Тестирование 1.2.3 ...» и «Нажмите любую клавишу, чтобы продолжить ...». Строки показывают, что выполнение было успешно выполнено на метке: dozip, а затем успешно возвращено вызывающей стороне.
Является ли исполняемый файл "7za" на самом деле пакетным файлом? Если я изменю свой тестовый сценарий, чтобы помощник был пакетным файлом, я получаю ту же ошибку. Чтобы исправить это, выполните «вызов% zip%% 1»
мораль истории: при вызове внешних программ / командных файлов в командном файле используйте call
call foo.bat
и / или
call %foo%
(Вызов одной партии из другой осуществлялся со времен DOS, просто не забудьте позвонить)
Одна из возможностей, хотя и маловероятная, состоит в том, что расширения команд не включены или не обновлены, и это мешает работе call / goto / label.
Попробуйте :
echo [%cmdextversion%]
и если оно меньше [2]
(или пусто - []
), проверьте, не вызывается ли cmd.exe
с помощью / e: off
, или просто запустите
cmd /e:on
в окне консоли, где вы запустите этот командный файл.
Вы используете Windows NT 4 / Windows 2000 ? Только там вы можете использовать CALL для вызова подпрограмм в одном пакетном файле.
Если внимательно присмотреться к вашему гексагону, то на самом деле он не содержит всех CRLF ( 0d 0a
). Несколько строк оканчиваются на LF-only ( 0a
без предшествующего 0d
).
Проверьте свой шестнадцатеричный редактор, чтобы убедиться, что каждые 0a
перед 0d
(ровно один).
Или просто вырежьте и вставьте файл в пустой документ Блокнота и повторно сохраните его.