Можно ли повторить эхо-команду в новый файл? - PullRequest
5 голосов
/ 06 декабря 2011

Я пытаюсь использовать командный файл для создания другого командного файла ... это файл, который я должен использовать довольно часто с несколькими переменными, которые меняются каждый раз. Я столкнулся с проблемой, потому что в пакете, который я пытаюсь создать, он также использует echo для записи в файл .txt.

Вот команда:

echo echo %date% - %time% >> C:\MOVEit\Logs\FileGrabberLog.txt >> C:\filegrabber_%org%.bat

Я хочу ввести всю строку echo %date% - %time% >> C:\MOVEit\Logs\FileGrabberLog.txt в C: \ filegrabber_% org% .bat.

Я могу поставить "" вокруг него, но затем они появятся в пакете, который я пытаюсь создать.

Кто-нибудь знает способ обойти это?

Ответы [ 3 ]

5 голосов
/ 06 декабря 2011

Вы экранируете % с помощью %% и другие специальные символы с ^, поэтому это должно работать;

echo echo %%date%% - %%time%% ^>^> C:\MOVEit\Logs\FileGrabberLog.txt >> C:\filegrabber_%org%.bat
1 голос
/ 06 декабря 2011

Или, чтобы избежать карет, вы можете использовать исчезающие кавычки

setlocal EnableDelayedExpansion
(
  echo !="!echo %%date%% - %%time%% >> C:\MOVEit\Logs\FileGrabberLog.txt
) > C:\filegrabber_%org%.bat

Только тогда процент должен быть удвоен.

Это работает, так как !="! анализируется в фазе специальных символов, и решается, что остальная часть строки будет заключена в кавычки.

И в задержанной фазе !="! будет удален, так как переменная с именем =" не существует (и не может быть создана).

0 голосов
/ 02 октября 2012

Следующий ответ может быть полезен для вашего вопроса:

Это было опубликовано ранее, и был дан ответ, подобный тому, что был дан здесь: Игнорировать процент входа в пакетном файле

...