|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 81
|
[batch]Scelta casuale di un numero
Salve a tutti,
il mio problema è facile da descrivere: ho un file .txt che contiene su ogni riga un testo tipo J1 ecc. bene io vorrei che con un comando il batch scelga a caso una riga e che la sciva tramite echo, poi crei un altro file contenente tutte le righe tranne quella scelta precedentemente. Potrebbe essere possibile??? Grazie. |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 81
|
up
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
tecnicamente potrebbe essere fattibile
anche se dos ha una gestione un po riduttiva soprattutto per il cercare precisamente il numero di riga all'interno di un text file... dovresti "approntare" il file con dei numeri davanti tipo: Codice:
001:ciao 002:prova ecc ecc poi tramite questo comando Codice:
echo %random:~-3% a quel punto con un FIND "001:" trovi la stringa che ti interessa e con FIND /V trovi tutte le altre....e le rilogghi su un nuovo file
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 81
|
Grazie per la tua risposta, ma non mi sono chiare alcune cose:
-con il comando find mi trova solo il numero a 3 cifre, mente io vorrei che mi trovasse ciò che è scritto nella riga che contiene il %random% e mi mandasse in echo solo ciò che c'è in qualla riga, tranne il numero. Io ho provato a risolvere così: set nom=%random:~-2% for /f "token=%nom% delims=" %%i in (333.txt) do set num=%%i set cr=%num:~2% echo %cr% e il file 333.txt contiene questo: J1 J2 J3 Il problema di questo codice è che mi dà token non atteso e che le righe all'interno del file sono 52, non 99. Chiedo aiuto. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
attendi se passa john revelator
lui con la powershell ci mette un secondo... con il dos nudo e crudo la vedo molto difficile...
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 81
|
Proprio non si può fare??? Perchè questi comandi dovrei integrarli ad altro codice ms-dos...
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
il file di partenza deve essere di questo tipo
01:J1 02:J2 03:J3 ecc ecc... allora: Codice:
:prova set num=%random:~-2% if %num% LSS 53 ( FINDSTR /B %num%: cia.txt > file_linea.txt FINDSTR /B /V %num%: cia.txt > file_no_linea.txt ) ELSE ( goto prova )
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
oppure se vuoi essere sicuro che comunque estragga una linea
Codice:
cls :prova set num=%random:~-2% FINDSTR /B %num%: cia.txt > file_linea.txt if %ERRORLEVEL% EQU 0 ( FINDSTR /B /V %num%: cia.txt > file_no_linea.txt ) ELSE ( goto prova )
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
Codice:
echo off cls :prova set num=%random:~-2% FINDSTR /B %num%: cia.txt > file_linea.txt if %ERRORLEVEL% EQU 0 ( FINDSTR /B /V %num%: cia.txt > file_no_linea.txt copy file_no_linea.txt cia.txt >NUL set /p code="" <file_linea.txt set codice=%code:~3% echo %codice% ) ELSE ( goto prova )
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 81
|
Grazie mille per l'immenso lavoro, ma eseguendo l'ultimo codice che mi hai dato (quello che rispecchia esattamente quello che voglio fare) mi dice "echo disattivato"...io non riesco a risolvere...
Qualcuno sa aiutarmi???
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 314
|
Quote:
__________________
Athlon64 x2 5600 - AsRock ALiveNF5eSata2+ - kingston 2GB ddr2 800 - GeForce 8800gts 320MB |
|
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 81
|
Mi dispiace, ma così non funziona
.
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
a me va senza problemi
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
#14 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 81
|
Risolto
così: Codice:
echo off cls :prova set num=%random:~-2% FINDSTR /B %num%: cia.txt > file_linea.txt if %ERRORLEVEL% EQU 0 (goto file) else (goto prova) :file FINDSTR /B /V %num%: cia.txt > file_no_linea.txt copy file_no_linea.txt cia.txt >NUL for /f "delims=" %%i in (file_linea.txt) do set code=%%i set codice=%code:~3% echo %codice% :end
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:53.












.
così:








