Autore Topic: Comandi BATCH necessari per l'unattended  (Letto 103314 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline ilsaggio

  • Full Member
  • ***
  • Post: 164
  • Karma: -10
Re: Comandi BATCH necessari per l'unattended
« Risposta #60 il: 31/05/2011, 00:12 »
si questo l'avevo capito, e so già come scrivere in un file di testo...ma se il tuo codice sopra è esatto, come passo il gateway "puro" al ping, ed eventualmente ad un file di testo per vedere un log del risultato?

Offline OnePiece

  • Hero Member
  • *****
  • Post: 3.628
  • Karma: -3277
Re: Comandi BATCH necessari per l'unattended
« Risposta #61 il: 31/05/2011, 13:34 »
In esempio di sopra ce tutto, non capisco cosa vuoi fare li ???, che con il esempio di sopra non riesci farlo, mi spiego bene, il script cmd legge il registro, dopo in variabile salva il testo trovato in quello chiave di registro ect ect, in questo punto tu ai il variabile che dopo la usi come vuoi li, scrivi un file di testo, se vuoi la compari con un tuo testo per verificare se ai trovato quello che cerchi, aggiungi in registro ancora in un altro KEY ect ect, fai tutto quello che vuoi

Ciao.
   

Offline ilsaggio

  • Full Member
  • ***
  • Post: 164
  • Karma: -10
Re: Comandi BATCH necessari per l'unattended
« Risposta #62 il: 31/05/2011, 17:06 »
vorrei creare un file .bat che mi controlli da solo lo stato della rete...quindi che mi faccia ipconfig, e lo stampi su un file...nel caso in cui non fosse assegnato nessun ip, me lo faccia notare senza andare avanti..in caso controrio, inviece deve provare a fare un ping prima al gateway e poi semmai all'esterno, tipo google...

Codice: [Seleziona]
@ECHO OFF
@ ipconfig /all >> test.txt >> temp.txt
:: delims is a TAB followed by a space
FOR /F "tokens=2* delims=    " %%A IN ('REG QUERY "HKLM\SYSTEM\ControlSet001\Services\{09A8F4A5-31A6-4137-8151-5C390CDE44F7}\Parameters\Tcpip" /v DhcpDefaultGateway') DO SET TCPIP=%%B
ECHO TCPIP=%TCPIP%
@ ping %TCPIP% >> temp.txt

ma non va, mi da errore
oltretutto mi sa che con questo codice, mi direbbe XX.XX.XX.XX/0/0
e se ne faccio il ping mi dà errore
comunque non si può fare uno script assoluto, credo che in ogni pc cambi il mynic
« Ultima modifica: 31/05/2011, 17:19 da ilsaggio »

Offline OnePiece

  • Hero Member
  • *****
  • Post: 3.628
  • Karma: -3277
Re: Comandi BATCH necessari per l'unattended
« Risposta #63 il: 31/05/2011, 17:26 »
Si fa tutto dal file cmd, ma e un script vecchio, in pochi in web sano giocare ancora con quello, i opzioni ci sono ma cosi semplici e cosi complicati (per fare una cosa a vlte serve scrivere 1000 line, invece in autoit per esempio ne bastano solo 2 3 4 line di codice ehhhhhh), forse dovrai usare autoit o altri script per fare cose un po più complicate, riguardo il codice di sopra per non dire che non o giocato mai con le IP, diciamo che o poco esperienza al riguardo cosi non so dirti niente, quello che vedo li e che quello chiave di registro in mio WIndows 7 x64 non essite appunto il variabile %TCPIP% torna NUL vole dire e ""


Ciao.
   

Offline DMD

  • Eng2ita Friends
  • **
  • Post: 398
  • Karma: 45
Re: Comandi BATCH necessari per l'unattended
« Risposta #64 il: 31/08/2011, 10:54 »
Scusate ragazzi, ma non riesco in cosa semplice semplice per Windows 7 64 bit, tempo fa avevo chiesto qualcosa di simile, però non includendo la compressione in file autoestraente.

In poche parole se voglio copiare una cartella con dei file (es. Gadget) nel percorso "%programfiles%\Windows Sidebar\Gadgets

Basta eseguire il semplice sript, così mi copia tutto il contenuto della cartella "Gadgets_extra" nel percorso indicato.
Codice: [Seleziona]
xcopy "Gadgets_extra" "%programfiles%\Windows Sidebar\Gadgets" /E /Q /H /R /Y
Questo in sistema a 64 bit va ad allocarsi proprio nella cartella programfiles ed è tutto OK.



Il problema nasce quando io voglio comprimere in file unico autoestraente, con WinRAR
dove nel commento inserisco

Codice: [Seleziona]
Setup=instal.bat
TempMode
Silent=2
Overwrite=1

Dove instal.bat è lo script di cui sopra

Bene l'estrazione viene eseguita ma in "programfiles(x86)" e non in "programfiles"!!
Anche provando con il tool  "bat to exe" la stessa cosa, Il percorso programfiles in autoestraente non viene riconosciuto in 64 bit, ma solo la versione X86.

Qualcuno potrebbe darmi una mano?   :BangHead: :BangHead:

GRAZIE
« Ultima modifica: 31/08/2011, 11:02 da DMD »

Offline OnePiece

  • Hero Member
  • *****
  • Post: 3.628
  • Karma: -3277
Re: Comandi BATCH necessari per l'unattended
« Risposta #65 il: 31/08/2011, 11:13 »
Perché il exe in winrar e x32, appunto anche i percorsi vano automaticizzate in x86 mod

in certi casi meglio usare il IF

IF EXIST "%ProgramFiles(x86)%" (xcopy "Gadgets_extra" "%systemdrive%\Program Files\Windows Sidebar\Gadgets" /E /Q /H /R /Y) ELSE (xcopy "Gadgets_extra" "%programfiles%\Windows Sidebar\Gadgets" /E /Q /H /R /Y)

oppure usa il %PROCESSOR_ARCHITECTURE% per sapere in che architettura stai lavorando

"%systemdrive%\Program Files" = se e solo per windows 7, allora in windows 7 il percorso "C:\Program Files (x86)" e il "C:\Program Files" sono già di default (non serve localizzarli)

Ciao.
   

Offline DMD

  • Eng2ita Friends
  • **
  • Post: 398
  • Karma: 45
Re: Comandi BATCH necessari per l'unattended
« Risposta #66 il: 31/08/2011, 11:35 »
GRAZIE!! :)

Adesso finalmente funziona, anche comprimendolo in autoestrazione con WinRAR.

Ma perchè WinRAR si comporta così, eppure è la versione a 64 bit, veificato anche nei processi.

p.s. ma solo WinRAR puofare questa funzione di autoestrazione?

Un saluto

Offline OnePiece

  • Hero Member
  • *****
  • Post: 3.628
  • Karma: -3277
Re: Comandi BATCH necessari per l'unattended
« Risposta #67 il: 31/08/2011, 14:41 »
Ogni applicazione si comporta cosi, e la regola diciamo, e tutto ok li non ce niente che non va, come detto ogni exe si comporta cosi

Ciao.

Postato il: 31/08/2011, 14:05


Comunque (anche se piu che funzionante, che e quello che conta, basta che funzioni tutto altro dopo a meno importanza) quello script era per dare un esempio scritto in corsa, il script coretto  e che dovrebbe essere ok in ogni scenario possibile (perché uno e in x32 e crea una cartella 'program files (x86)' cosi confonde il scirpt diciamo ect ect) o dire bene anche in windows xp 64, e questo

Citazione
SET PRGFLDDIR=%programfiles%
IF %PROCESSOR_ARCHITECTURE%==AMD64 SET PRGFLDDIR=%PRGFLDDIR:~-0,-6%

xcopy "Gadgets_extra" "%PRGFLDDIR%\Windows Sidebar\Gadgets" /E /Q /H /R /Y

Ciao.
« Ultima modifica: 31/08/2011, 14:49 da OnePiece »
   

Offline DMD

  • Eng2ita Friends
  • **
  • Post: 398
  • Karma: 45
Re: Comandi BATCH necessari per l'unattended
« Risposta #68 il: 31/08/2011, 16:09 »
Grazie per la tua disponibilità dato che mi trovo ti pongo un'altra "rognetta" se si può dire

Stesso problema per quanto riguarda il system32, allora seguendo l'esempio di cui sopra che funziona per la root programfiles, non mi funziona per il system32.

Il tuo script adattato se lo lancio così com'è funziona!

Codice: [Seleziona]
IF EXIST "%ProgramFiles(x86)%" (xcopy "Calcolator Plus" "%systemdrive%\Windows\System32" /E /Q /H /R /Y) ELSE (xcopy "Calcolator Plus" "%systemroot%\System32\Calcolator Plus" /E /Q /H /R /Y)
Ma se tento di fare l'autoestraente indicante l'install contenente lo script di sopra, mi indirizza i file nella root "SysWOW64" anzichè in "system32".

Nello script al posto di %programfiles(x86) o inserito "SysWOW64", ma non funziona lo stesso, mi indirizza il file sempre in SysWOW64.

Questo è un problema diverso?

Grazie

Offline OnePiece

  • Hero Member
  • *****
  • Post: 3.628
  • Karma: -3277
Re: Comandi BATCH necessari per l'unattended
« Risposta #69 il: 31/08/2011, 16:42 »
E la stesa cosa, appunto mandato secondo esempio quello OK diciamo, ecco

Citazione
SET PRGFLDDIR=%programfiles%
SET SYSDIR= %SystemRoot%\System32
IF %PROCESSOR_ARCHITECTURE%==AMD64 SET PRGFLDDIR=%PRGFLDDIR:~-0,-6%
IF %PROCESSOR_ARCHITECTURE%==AMD64 SET SYSDIR=%SystemRoot%\SysWOW64

xcopy "Gadgets_extra" "%PRGFLDDIR%\Windows Sidebar\Gadgets" /E /Q /H /R /Y
::xcopy "Calcolator Plus" "%SYSDIR%\Calcolator Plus" /E /Q /H /R /Y

attenzione, perché molti si confondano, il SysWOW64 e destinazione corretta, detto questo perché molti si confondano, in x64 in system32 restano file 64 bit, invece le file di programmi 32 bit sono in SysWOW64, cosi in tuo casso il SysWOW64 e destinazione corretta in casso che il programma che installa e 32 bit

Ciao.
« Ultima modifica: 31/08/2011, 21:38 da OnePiece »
   

Offline DMD

  • Eng2ita Friends
  • **
  • Post: 398
  • Karma: 45
Re: Comandi BATCH necessari per l'unattended
« Risposta #70 il: 23/01/2012, 17:46 »
Ho "specificato" meglio i percorsi per quanto riguarda la root Program files, sia nei sistemi 32 che 64 bit.

Adesso anche con winRAR, se vogliamo idirizzare in Program Files dobbiamo scrivere papale papale "C:\Program Files"  in virtù di %programfiles% che indirizza in Program Files (x86)


Ho modificato in prima pagina i seguenti percorsi:

%PROGRAMFILES% - Indica il percorso C:\Program Files (solo nei S.O. a 32 bit) oppure C:\Program Files (x86) nei sistemi a 64 bit
"C:\Program Files" - Indica il percorso C:\Program Files (nei S.O. a 32 e 64 bit)
%COMMONPROGRAMFILES% - Indica il percorso C:\Program Files\Common Files (solo nei S.O. a 32 bit)

Offline Mr.X

  • Eng2ita Staff
  • ***
  • Post: 462
  • Karma: 77
Re: Comandi BATCH necessari per l'unattended
« Risposta #71 il: 23/01/2012, 18:53 »
Citazione
Adesso anche con winRAR, se vogliamo idirizzare in Program Files dobbiamo scrivere papale papale "C:\Program Files"  in virtù di %programfiles% che indirizza in Program Files (x86)
non mi risulta quello che riporti:

per sistemi x86 localizzati in italiano:
%programfiles% --------------------> C:\Programmi
%CommonProgramFiles% ------------> C:\Programmi\Common Files

per sistemi x64 localizzati in italiano:
%programfiles% --------------------> C:\Programmi
%ProgramFiles(x86)% --------------> C:\Programmi (x86)
%CommonProgramFiles% -----------> C:\Programmi\Common Files
%CommonProgramFiles(x86)% ------->C:\Programmi (x86)\Common Files

Offline DMD

  • Eng2ita Friends
  • **
  • Post: 398
  • Karma: 45
Re: Comandi BATCH necessari per l'unattended
« Risposta #72 il: 23/01/2012, 19:23 »
Forse mi sono espresso male, intendo dire se per esempio in un autoestraente fatto con WinRAR indichiamo il percorso %programfiles% , se lo eseguiamo in sistema a 64 bit, questo punterà automaticamente in Program files (x86) e non in Program files come dovrebbe essere.

Per cui nei S.O. a 64 bit indicare %programfiles% oppure %programFiles(x86)% è la stessa identica cosa per WinRAR, non fa distinzione

"C:\Program Files"------------------> C:\Programmi
%programfiles% -------------------> C:\Programmi (x86)
%programFiles(x86)% -------------> C:\Programmi (x86)
%CommonProgramFiles% ----------> C:\Programmi (x86)\Common Files
%CommonProgramFiles(x86)% ----->C:\Programmi (x86)\Common Files
"C:\Program Files\Common Files"---->C:\Programmi\Common Files

Per questo indico, in WinRAR il palese percorso tra virgolette "C:\Program Files".

« Ultima modifica: 24/01/2012, 17:17 da DMD »

Offline DMD

  • Eng2ita Friends
  • **
  • Post: 398
  • Karma: 45
Re: Comandi BATCH necessari per l'unattended
« Risposta #73 il: 10/10/2014, 18:40 »
Buona sera.

Dopo tanto tempo riesumo il thread in quanto ho bisogno di qualche idea o procedura  per effettuare la chiusura della finestra di un determinato programma.

In particolare, quando lancio il il software di gestione della tastiera, questo automaticamente si posizona a icona nella tray, però lascia anche la finestra aperta con le impostazioni nel mezzo del desktop, e  ogni volta devo chiuderla manualmente o con "Alt + F4"
Dato che questo programma deve avviarsi insieme a windows, questo crea una bella seccatura, allora vorrei "automatizzare" l'avvio con chiusura finestra tramite comando bat.

Ringrazio per eventuali suggerimenti.

« Ultima modifica: 10/10/2014, 18:45 da DMD »

Offline OnePiece

  • Hero Member
  • *****
  • Post: 3.628
  • Karma: -3277
Re: Comandi BATCH necessari per l'unattended
« Risposta #74 il: 10/10/2014, 19:33 »
Usa AutoIt e molto semplice sia da imparare sia da usare, esempio https://www.autoitscript.com/autoit3/docs/libfunctions/_RunDos.htm
Codice: [Seleziona]
Run(@ComSpec & " /c " & 'commandName', "", @SW_HIDE)
;or
RunWait(@ComSpec & " /c " & 'commandName', "", @SW_HIDE)

niente altro

Ciao.