Discussione:
rapporto
(troppo vecchio per rispondere)
mister-xxxxx
2010-01-01 21:09:58 UTC
Permalink
Salve a tutti,
sono un "dilettante" del DOS e mi sono impigliato in un problemino "di
base" che non riesco a risolvere: vorrei che il sottostante file
"report.log" riportasse integralmente quanto eseguito dallo script
(errore voluto compreso); invece, compilato così, non viene proprio
prodotto alcun file di report.
_______________________________________________________________________________
copy /y "%windir%\system32\actmovie.exe" "%userprofile%\desktop"
copy /y "%windir%\system32\actmoviu.exe" "%userprofile%\desktop"
ren "%userprofile%\desktop\actmovie.exe" prova.exe
report.log 2>&1
exit
______________________________________________________________________________



Se invece lo compilo così
_______________________________________________________________________________
copy /y "%windir%\system32\actmovie.exe" "%userprofile%\desktop"
copy /y "%windir%\system32\actmoviu.exe" "%userprofile%\desktop"
ren "%userprofile%\desktop\actmovie.exe" prova.exe
nome-del-file.cmd > report.log 2>&1
exit
_______________________________________________________________________________

la finestra di "nome-del-file.cmd" resta aperta,e quando la chiudo
manualmente ottengo 3 files: actomvie.exe; prova.exe e report.log
(quest'ultimo direi completo).

Potete dirmi qual è la sintassi giusta? Grazie.
Badrune
2010-01-07 15:54:03 UTC
Permalink
Post by mister-xxxxx
Salve a tutti,
sono un "dilettante" del DOS e mi sono impigliato in un problemino "di
base" che non riesco a risolvere: vorrei che il sottostante file
"report.log" riportasse integralmente quanto eseguito dallo script
(errore voluto compreso); invece, compilato così, non viene proprio
prodotto alcun file di report.
[...]

ciao!
innanzitutto meglio cambiare l'impiego di un verbo, che ti farà comodo
magari in seguito, ovvero il verbo "compilare". Se è vero che in italiano ha
un certo senso ed è corretto, in gergo "compilare" ha anche un altro
significato. Quindi puoi dire semplicemente "scrivo" :)


Detto questo, se ho capito quello che vuoi ottenere, lo ottieni così:

istruzione1 >nomdelfiledilog.log
istruzione2 >>nomdelfiledilog.log
istruzione3 >>nomdelfiledilog.log
istruzione4 >>nomdelfiledilog.log
istruzioneN >>nomdelfiledilog.log
...

e questo per ogni istruzione.

Naturalmente non è detto che questo abbia senso.
Talvolta l'uso dei caratteri pipe (uso dei caratteri come > < | >> << )
serve proprio nel contesto dell'istruzione che stai creando.

Ad esempio se il tuo batch dice

time /T >>favadellarava.log

(che corrisponde a "scrivi che ore sono in fondo al file favadellarava.log",
creandolo se non esiste)

che io sappia non è possibile fare il logging di quella istruzione, perché
il sistema per farlo è già usato dall'istruzione stessa per scrivere in un
file.

Spero di non averti fatto più casino che altro ;-))

Ad ogni modo se hai una istruzione di copia e vuoi che l'output testuale
finisca in un log, alla fine dell'istruzione aggiungi semplicemente
" >>file_di_log.txt"

se scrivi ">>" aggiungerà alla fine di un file, se esiste;
se non esiste lo creerà; se usi ">" sovrascriverà o creerà il file

esempio:

copy ziomitico.exe %windir% >>log.txt
copy %windir%\*.exe %userprofile%\desktop >>log.txt

:-)

Ciao!!
gioacchino
2010-01-07 17:28:56 UTC
Permalink
Post by Badrune
che io sappia non è possibile fare il logging di quella istruzione,
perché il sistema per farlo è già usato dall'istruzione stessa per
scrivere in un file.
nei sistemi posix esiste il comando tee
purtroppo dos non è posix

http://it.wikipedia.org/wiki/Tee_(Unix)
Badrune
2010-01-08 13:32:16 UTC
Permalink
Post by gioacchino
Post by Badrune
che io sappia non è possibile fare il logging di quella istruzione,
perché il sistema per farlo è già usato dall'istruzione stessa per
scrivere in un file.
nei sistemi posix esiste il comando tee
purtroppo dos non è posix
http://it.wikipedia.org/wiki/Tee_(Unix)
mh.
qui ovviamente di "dos" non si parla più davvero.
si parla di CMD, almeno la richiesta di questa persona lo sarebbe ...

ma... comunque la tua dritta è interessantissima!!! :-)

occhio qui:

http://www.google.it/search?q=tee+for+windows


da sperimentare!!!

grazie per il tuo contributo!!! questa cosa rischia di essere MOLTO
interessante :-))
Badrune
2010-01-08 13:39:49 UTC
Permalink
Post by gioacchino
nei sistemi posix esiste il comando tee
purtroppo dos non è posix
http://it.wikipedia.org/wiki/Tee_(Unix)
fico, non sapevo:

http://en.wikipedia.org/wiki/Tee_(command)#Windows_PowerShell

Continua a leggere su narkive:
Loading...