|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2008
Messaggi: 273
|
No Chiusura dopo esecuzione in Batch
Salva ragazzi, spero cher qualcuno mi aiuti...
Ho questa riga di comando: Codice:
@Echo Off & SETLOCAL
echo.
SET "StartFolder="
echo.
FOR /r "%StartFolder%" %%i IN (*) DO call:doit "%%~i"
GOTO:EOF
:doit
SET "fname=%~nx1"
SETLOCAL ENABLEDELAYEDEXPANSION
SET "fsize=!$%fname%!"
IF DEFINED $!fname! (
ENDLOCAL
IF "%fsize%"=="%~z1" DEL "%~1"
) ELSE (
ENDLOCAL
SET "$%~nx1=%~z1"
)
GOTO:EOF
Tipo: Codice:
@Echo Off
echo pulisci bla bla bla
echo.
pause
SET "StartFolder="
echo.
FOR /r "%StartFolder%" %%i IN (*) DO call:doit "%%~i"
GOTO:EOF
:doit
SET "fname=%~nx1"
SETLOCAL ENABLEDELAYEDEXPANSION
SET "fsize=!$%fname%!"
IF DEFINED $!fname! (
ENDLOCAL
IF "%fsize%"=="%~z1" DEL "%~1"
) ELSE (
ENDLOCAL
SET "$%~nx1=%~z1"
)
GOTO:EOF
echo.
SET /P ANSWER=Do you want to continue (Y/N)?
echo You chose: %ANSWER%
if /i {%ANSWER%}=={y} (goto :yes)
if /i {%ANSWER%}=={yes} (goto :yes)
goto :no
:yes
echo You pressed yes!
:no
echo You pressed no!
START /HIGH /W "" "ciao\arrivederci.exe" etc etc
echo.
echo ciao
echo.
echo arrivederci
echo.
exit
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD W7X64BITEDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2005
Messaggi: 8697
|
Qual'è lo scopo che vuoi raggiungere con quel batch?
__________________
. Thread Ufficiali: EasyCrypt ~ Old Files Manager ~ OSD Clock The real me is no match for the legend . |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: May 2008
Messaggi: 273
|
Nessuno scopo mi serve solo che non si chiuda la finestra dos, dopo la prima funzione effettuata, una volta che cancella i file duplicati, il progamma dos (Paperino*.bat) deve continuare a funzionare, eseguendo ulteriori funzioni successive, tipo richiamo di un software.exe, altri messaggi etc etc etc etc...precedentemente già compilati....
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD W7X64BITEDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2005
Messaggi: 8697
|
Cancella i GOTO:EOF
__________________
. Thread Ufficiali: EasyCrypt ~ Old Files Manager ~ OSD Clock The real me is no match for the legend . |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: May 2008
Messaggi: 273
|
Gia' provato se tolgo i GOTO:EOF ed inserisco la funzione nel comando batch NON funziona,ma la schermata rimane aperta, se invece creo il comando con solo la funzione, anche senza i GOTO:EOF..Funziona.
Mha.
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD W7X64BITEDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' Ultima modifica di brubaker : 26-09-2014 alle 20:01. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: May 2005
Messaggi: 8697
|
DOIT ti serve per cancellare i duplicati da una cartella e relative sottodirectory, giusto?
__________________
. Thread Ufficiali: EasyCrypt ~ Old Files Manager ~ OSD Clock The real me is no match for the legend . |
|
|
|
|
|
#7 | |
|
Member
Iscritto dal: May 2008
Messaggi: 273
|
Quote:
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD W7X64BITEDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: May 2005
Messaggi: 8697
|
Prova con questo:
Codice:
: x_Master_x
@ECHO OFF
Setlocal enabledelayedexpansion
Del "Temp_List.txt" 2>nul
Set InitialDir=C:\Percorso\Cartella
If Not Exist "%InitialDir%" GOTO ERROR_QUIT
For /r "%InitialDir%" %%H in (*) do >>"TempList.txt" echo %%~nxH
Set FILENAME=FOUND
Set CHECK=FOUND
For /f "tokens=*" %%I in ('Sort "TempList.txt"') do if "%%I"=="!FILENAME!" (
If "!CHECK!"=="FOUND" for /f "tokens=*" %%J in ('dir /s /b "%InitialDir%\%%I"') do echo DEL "%%J"
Set CHECK=NO_FOUND
) else (
Set FILENAME=%%I
Set CHECK=FOUND
)
Del "TempList.txt" 2>nul
GOTO NEXT_SUB
:ERROR_QUIT
echo La directory "%InitialDir%" non esiste
Pause
Exit
:NEXT_SUB
echo.
echo OPERAZIONE COMPLETATA
Pause
Exit
__________________
. Thread Ufficiali: EasyCrypt ~ Old Files Manager ~ OSD Clock The real me is no match for the legend . Ultima modifica di x_Master_x : 27-09-2014 alle 14:44. |
|
|
|
|
|
#9 |
|
Member
Iscritto dal: May 2008
Messaggi: 273
|
Grazie Gentilissimo, senti mi aiuti a completarlo dato che sei piu' in gamba di me, mi servirebbe il modo da incollarci il percorso della cartella da controllare ed eliminare i file duplicati, non mi interessa la lista del controllo file in *.txt.
tipo questo finito che uso..il percorso in rosso: Codice:
SET /p "StartFolder="
echo.
FOR /r "%StartFolder%" %%i IN (*) DO call:doit "%%~i"
GOTO:EOF
:doit
SET "fname=%~nx1"
SETLOCAL ENABLEDELAYEDEXPANSION
SET "fsize=!$%fname%!"
IF DEFINED $!fname! (
ENDLOCAL
IF "%fsize%"=="%~z1" DEL "%~1"
) ELSE (
ENDLOCAL
SET "$%~nx1=%~z1"
)
GOTO:EOF
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD W7X64BITEDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' Ultima modifica di brubaker : 27-09-2014 alle 15:51. |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: May 2005
Messaggi: 8697
|
Dalle tue parole ipotizzo che di batch non sei un grande esperto ma questa è la sezione "Programmazione", è un luogo dove si impara e non si ha tutto bello e fatto
Ho editato il post precedente per quanto riguarda la path iniziale e spero di averlo reso più comprensibile ma ho lasciato comunque in sospeso per te la questione di quali file cancellare e quali no visto che a schermo ti verrano mostrati tutti. P.S. Per cortesia edita dal tuo post il quote al mio messaggio con il codice, di solito i codici non si quotano per eventuali correzioni etc.
__________________
. Thread Ufficiali: EasyCrypt ~ Old Files Manager ~ OSD Clock The real me is no match for the legend . |
|
|
|
|
|
#11 |
|
Member
Iscritto dal: May 2008
Messaggi: 273
|
Non si tratta di essere piu' esperto o meno esperto, il problema che sto compilando già un casino di cose (gratis per una comunità) e mi serviva inserire questo file batch, in altre molteplici funzioni, ecco perche ti avevo chiesto il favore di completarlo tu.
Ma ti ringrazio gia tantissimo per cio' che hai fatto, CMQ modificato opportunamente, la tua funzione cancella i file con lo stesso nome, non tenendo presente della grandezza del file in sè, il mio script invece tiene presente anche la grandezza del file..se in due subfolder differenti abbiamo giovanni da 12kb e giovanni ta 13kb giovanni non li tocca, allo stesso modo se abbiamo giovanni12Kb in due cartelle differenti ed un giovanni da 13kb in una terza cartella, il progamma cancella solo un giovanni, quello da 12kb in più ...non so se ho reso l'idea.. CMQ non voglio disturbarti piu' di tanto..se non me lo puoi completare.. nel modo descritto, fa lo stesso...userò una seconda alternativa. GRAZIE!!!!
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD W7X64BITEDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' Ultima modifica di brubaker : 27-09-2014 alle 16:10. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:56.










W7X64BIT









