2011-12-06 16 views
5

Sto provando ad usare un file batch per creare un altro file batch ... è un file che devo usare abbastanza spesso con poche variabili cambiate ogni volta. Mi sto imbattendo in un problema perché nel batch che sto cercando di creare, utilizza anche echo per scrivere in un file .txt.è possibile echo un comando echo in un nuovo file?

Ecco il comando:

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

voglio entrare l'intera stringa echo %date% - %time% >> C:\MOVEit\Logs\FileGrabberLog.txt in C: \ filegrabber_% org% .bat.

Posso mettere "" attorno ad esso ma poi appaiono nel batch che sto cercando di creare.

Qualcuno sa di un modo per aggirare questo?

risposta

5

Si esce % con %% e altri caratteri speciali con ^ quindi questo dovrebbe funzionare;

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

Hai ragione circa i caratteri di escape, ma Penso che voglia che l'output entri in 'C: \ filegrabber_% org% .bat', quindi non dovrebbe sfuggire al secondo' >> '. – aphoria

+0

Ah sì, grazie, corretto sopra –

+0

true, sto cercando di ottenere tutto questo: 'echo% date% -% time% >> C: \ MOVEit \ Logs \ FileGrabberLog.txt' in C: \ filegrabber_% org% .bat – iesou

1

o per evitare i segni di omissione è possibile utilizzare scomparendo citazioni

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

Solo le percentuali devono essere raddoppiati poi.

Funziona, come il !="! viene analizzato nella fase di carattere speciale, e si decide che il resto della linea sarà quotato.

E nella fase ritardata lo !="! verrà rimosso, poiché la variabile con il nome =" non esiste (e non può essere creata).

0

La risposta seguente potrebbe essere utile alla tua domanda:

Questo è stato inviato in precedenza e la risposta è stata data, simile a quello che è stato dato qui: Ignore Percent Sign in Batch File

+0

Grazie, lo esaminerò – iesou