I'm trying to use a batch file to create another batch file... it's a file I have to use quite often with a few variables changed each time. I'm running into an issue because in the batch I'm trying to create, it is also using echo to write to a .txt file.
Here is the command:
echo echo %date% - %time% >> C:\MOVEit\Logs\FileGrabberLog.txt >> C:\filegrabber_%org%.bat
I want to enter the whole string echo %date% - %time% >> C:\MOVEit\Logs\FileGrabberLog.txt
into C:\filegrabber_%org%.bat.
I can put "" around it but then they appear in the batch I'm trying to create.
Anyone know of a way around this?
You escape %
with %%
and other special characters with ^
so this should work;
echo echo %%date%% - %%time%% ^>^> C:\MOVEit\Logs\FileGrabberLog.txt >> C:\filegrabber_%org%.bat
Or to avoid the carets you can use disappearing quotes
setlocal EnableDelayedExpansion
(
echo !="!echo %%date%% - %%time%% >> C:\MOVEit\Logs\FileGrabberLog.txt
) > C:\filegrabber_%org%.bat
Only the percents have to be doubled then.
It works, as the !="!
is parsed in the special character phase, and it is decided, that the rest of the line will be quoted.
And in the delayed phase the !="!
will be removed, as the variable with the name ="
does not exist (and it can't be created).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With