|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
[C] System: "rm" di Linux diventa "del" su Win32?!
Codice:
system("rm ./tmp/*"); system("rm ./log/*"); system("rm ./tts/*"); system("rm -r canale*"); Codice:
system("del ./tmp/*"); system("del ./log/*"); system("del ./tts/*"); system("deltree canale*"); ![]() ![]() ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 06-07-2007 alle 09:37. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Pensavo di programare multipiattaforma ed allora se fallisce la system con RM esegui la sistem con DEL.
Questo volevo fare. ![]() ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Codice:
DOS Linux --------------------------------------------------------------------- C:\GUIDO>DIR $ ls C:\GUIDO>DIR FILE.TXT $ ls file.txt C:\GUIDO>DIR *.H *.C $ ls *.h *.c C:\GUIDO>DIR/P $ ls | more C:\GUIDO>DIR/A $ ls -l C:\GUIDO>DIR *.TMP /S $ find / -name "*.tmp" C:\GUIDO>CD $ pwd n/a - vedi nota $ cd idem $ cd ~ idem $ cd ~/temp C:\GUIDO>CD \OTHER $ cd /other C:\GUIDO>CD ..\TEMP\TRASH $ cd ../temp/trash C:\GUIDO>MD NEWPROGS $ mkdir newprogs C:\GUIDO>MOVE PROG .. $ mv prog .. C:\GUIDO>MD \PROGS\TURBO $ mkdir /progs/turbo C:\GUIDO>DELTREE TEMP\TRASH $ rm -R temp/trash C:\GUIDO>RD NEWPROGS $ rmdir newprogs C:\GUIDO>RD \PROGS\TURBO $ rmdir /progs/turbo Suggerimenti per fare: system("rm -r canale*"); ?! Ovver ocancellare tutte le cartelle chiamate: canale"qualcosa"
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 06-07-2007 alle 09:46. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Forse devo spezzare il comando così:
Codice:
system("del canale*\*"); system("rd canale*"); rd canale* /s /q
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 06-07-2007 alle 09:53. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Che balle adesso non prende l'asterisco (*) ...
"La sintassi del nome del file è incorretta", ma che cavolo vuole ancora?
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 06-07-2007 alle 10:18. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
![]() Altre soluzioni?!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Usare ad esempio la API Win32 SHFileOperation, che tra l'altro consente anche di mostrare una dialog di "progress".
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Puoi farmi, se hai tempo, un esempio esplicativo di come si usa?
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
#define STRICT #include <windows.h> #include <shellapi.h> #include <stdio.h> BOOL DeleteDirTree (LPSTR lpszPath) { SHFILEOPSTRUCT shfops; ZeroMemory (&shfops, sizeof (shfops)); shfops.wFunc = FO_DELETE; shfops.fFlags = FOF_NOCONFIRMATION | FOF_SILENT | FOF_NOERRORUI; shfops.pFrom = lpszPath; return SHFileOperation (&shfops) == 0; } int main (void) { BOOL bRet; bRet = DeleteDirTree ("C:\\TEMP"); return 0; }
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Codice:
system("python -c \"import shutil; shutil.rmtree('canale*')\"") /* eccetera */ ![]()
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Bello, ma ha la leggera controindicazione che l'interprete Python debba essere installato sulla macchina ospite
![]() #ifdef WIN32 // non mi ricordo se è WIN32 o __WIN32 system("rm ./tmp/*"); system("rm ./log/*"); system("rm ./tts/*"); system("rm -r canale*"); #else system("del ./tmp/*"); system("del ./log/*"); system("del ./tts/*"); system("deltree canale*"); #endif Consiglio...sposta tutti questi file in una sottodirectory chiama "data" o qualcosa del genere... Dopo usi "deltree data" o "rm -rf data"... |
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
2] Posso sbatterli così in mezzo al codice sorgente C? 3] #ifdef WIN32, cioè se è definito fai degli rm? Non è il contrario, cioè fai i del? 4] Deltree mi pare che non esista come comando, devo scaricarlo altrove e metterlo nella cartella system32?
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 07-07-2007 alle 11:35. |
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
1) sì
2) sono direttive al compilatore...se compili per Windows ti compila il primo pezzo di codice, se compili su un so diverso da Windows ti compila il secondo, fanno comunque parte della stessa famiglia delle macro, che si dichiarano con #define 3) sì, è invertito 4) mi sa che l'hanno tolto in XP, una volta nel dos c'era, allora mi sa che ti conviene usare le API che ti ha suggerito andbin Ovviamente: Codice:
#ifdef WIN32 #define STRICT #include <windows.h> #include <shellapi.h> BOOL DeleteDirTree (LPSTR lpszPath) { SHFILEOPSTRUCT shfops; ZeroMemory (&shfops, sizeof (shfops)); shfops.wFunc = FO_DELETE; shfops.fFlags = FOF_NOCONFIRMATION | FOF_SILENT | FOF_NOERRORUI; shfops.pFrom = lpszPath; return SHFileOperation (&shfops) == 0; } #endif |
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
Codice:
#ifdef WIN32 system("rd /s /q data"); #else system("rm -rf data"); #endif ![]() -r = ricorsivo, ma -f?
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 12-07-2007 alle 17:16. |
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ah hanno messo la possibilità di rimuovere le sottodirectory con rd...buon a sapersi
![]() -f Non chiede conferme. Non scrive messaggi diagnostici. Non pro‐ duce un stato di ritorno d’errore se gli unici errori erano file inesistenti. |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Questo sempre per tutti i comandi Linux o solo per rm?
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Solo per rm, poi ogni comando ha storia a se...magari qualcuno ha la stessa opzione...
|
![]() |
![]() |
![]() |
#19 | |||
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
questo non me lo fa fare
Quote:
Come faccio a lanciare + comandi dalla stessa riga di comando? Avevo in mente di fare Quote:
Quote:
![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|||
![]() |
![]() |
![]() |
#20 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Su linux è così. Più comandi separati da ; vengono eseguiti sequenzialmente dalla shell.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:31.