View Full Version : apertura automatica di file presenti in una cartella, (non sono app)
MARCOS_32
05-10-2009, 12:04
ciao a tutti!
vi scrivo per chiedervi una cosa un po' particolare...
avrei bisogno di un programmino (non credo sia fattibile senza), che mi apra tutti i file contenuti in una specifica cartella, ad un orario prestabilito.
mi spiego..
C'è la cartella X
io inserisco che so, 5 txt, 2.html e 2 .bat, il programma, nell'ora prestabilita, apre/avvia tutto quello contenuto nella cartella X, senza però specificarne il percorso esatto, in quanto i file cambiano di continuo.
ad esempio il giorno dopo i txt sono 12 gli html solo 3 e i bat 5...lui deve avviare tutto..
qualcuno sa dirmi se ciò è possibile?
p.s.
ovviamente si escludono sia le operazioni pianificate sia i prog che svolgono tale funzione, in quanto è obbligatorio inserire il percorso di ogni file (con relativo nome, e quindi ogni volta dovrei aggiugnerne...)
MARCOS_32
07-10-2009, 07:46
up
no... non è obbligatorio inserire il percorso di ogni file.
non conosci la potenza dei semplici batch. :D
la faccenda è semplice. usi naturalmente le operazioni pianificate (con account con password altrimenti non partirà niente) e fai eseguire un bel file batch.
la faccenda io la immagino un pò lunghetta, per un motivo: il comando
dir /b >> files.txt ti elencherà i nomi dei file della cartella e salverà l'output nel file "files.txt".
successivamente dobbiamo aprire questo file, riga per riga con un bel ciclo for, semplicemente facendogli leggere il file trovato nella riga corrente.
basta cercare in rete "leggere da un testo con i bat", et voilà
In questo esempio vengono lette le righe del file files.txt
@echo off
setLocal EnableDelayedExpansion
for /f “tokens=* delims= ” %%a in (files.txt) do (
echo %%a
)
basta togliere la parolina "echo", che in pratica elencherebbe solo il nome del file, e il comando eseguito (il semplice nome del file) dovrebbe proprio aprire i suddetti.
quindi io direi che potresti provare con un bel
cd x:/cartella
dir /b >> files.txt
setLocal EnableDelayedExpansion
for /f “tokens=* delims= ” %%a in (files.txt) do (
%%a
)
se inserisci il file dentro la cartella incriminata devi essere sicuro di non rileggere il batch stesso, altrimenti se lo metti di fuori basta che con cd x:/cartella ti posizioni dentro la cartella da leggere e stop. se x:/cartella con spazi devi scriverla con le virgolette "x:/cartella con spazi".
MARCOS_32
07-10-2009, 17:12
no... non è obbligatorio inserire il percorso di ogni file.
non conosci la potenza dei semplici batch. :D
la faccenda è semplice. usi naturalmente le operazioni pianificate (con account con password altrimenti non partirà niente) e fai eseguire un bel file batch.
la faccenda io la immagino un pò lunghetta, per un motivo: il comando
dir /b >> files.txt ti elencherà i nomi dei file della cartella e salverà l'output nel file "files.txt".
successivamente dobbiamo aprire questo file, riga per riga con un bel ciclo for, semplicemente facendogli leggere il file trovato nella riga corrente.
basta cercare in rete "leggere da un testo con i bat", et voilà
In questo esempio vengono lette le righe del file files.txt
@echo off
setLocal EnableDelayedExpansion
for /f “tokens=* delims= ” %%a in (files.txt) do (
echo %%a
)
basta togliere la parolina "echo", che in pratica elencherebbe solo il nome del file, e il comando eseguito (il semplice nome del file) dovrebbe proprio aprire i suddetti.
quindi io direi che potresti provare con un bel
se inserisci il file dentro la cartella incriminata devi essere sicuro di non rileggere il batch stesso, altrimenti se lo metti di fuori basta che con cd x:/cartella ti posizioni dentro la cartella da leggere e stop. se x:/cartella con spazi devi scriverla con le virgolette "x:/cartella con spazi".
ciao!
ti ringrazio infinitamente per la tua risposta....
premetto che odio profondamente la programmazione:D :D
comunque sia ho seguito passo passo le tue chiarissime istruzioni ma c'è un problema..
ricapitolando:
1)creo la cartella "prova" (C:/prova)
2)creo un bat con:
cd C:/prova
dir /b >> c:/files.txt
setLocal EnableDelayedExpansion
for /f “tokens=* delims= ” %%a in (c:/files.txt) do (
%%a
)
...effettivamente viene creato il file files.txt, contenente nomi+estensioni dei files contenuti in c:/prova....ma purtroppo non parte niente...sia con che senza echo..
ti prego helpami :)
del files.txt
cd C:\prova\bla
dir /b >> c:\prova\files.txt
for /f "tokens=* delims=" %%a in (c:\prova\files.txt) do ("%%a")
cd..
questo il codice "pseudo"giusto, non andava messo a capo il ciclo for, e se non si cancella il vecchio files.txt ti viene una lista immane ripetuta ogni volta :D
comunque questo non risolve il problema -.-
l'ho provato, a me su Vista mi apre UN documento alla volta, e solo alla chiusura del primo si apre il secondo, eccetera -.-
suggerimenti?
MARCOS_32
08-10-2009, 20:15
del files.txt
cd C:\prova\bla
dir /b >> c:\prova\files.txt
for /f "tokens=* delims=" %%a in (c:\prova\files.txt) do ("%%a")
cd..
questo il codice "pseudo"giusto, non andava messo a capo il ciclo for, e se non si cancella il vecchio files.txt ti viene una lista immane ripetuta ogni volta :D
comunque questo non risolve il problema -.-
l'ho provato, a me su Vista mi apre UN documento alla volta, e solo alla chiusura del primo si apre il secondo, eccetera -.-
suggerimenti?
grazie infinite, adesso funziona....e per quello che devo fare io, è perfetto!!!
ne approfitto...sai per caso come fare per far cancellare i file/shortcut/.../ dopo essere stati avviati?
ho provato aggiungendo for /f "tokens=* delims=" %%a in (c:\files.txt) do ("del %%a")
ma non ha funzionato..penso che non abbia senso quello che ho fatto vero? xD
MARCOS_32
11-10-2009, 10:24
up
cosa intendi per file/shortcut? cioè, vuoi che una volta eseguita l'apertura del file che volevi aprire, il comando successivo è la sua cancellazione?
se si, il codice sarebbe dovuto diventare
del files.txt
cd C:\prova\bla
dir /b >> c:\prova\files.txt
for /f "tokens=* delims=" %%a in (c:\prova\files.txt) do (
"%%a"
del "%%a")
cd..
ma siccome c'è qualche problema con l'andata a capo, famo
del files.txt
cd C:\prova\bla
dir /b >> c:\prova\files.txt
for /f "tokens=* delims=" %%a in (c:\prova\files.txt) do ("%%a")
for /f "tokens=* delims=" %%a in (c:\prova\files.txt) do (del "%%a")
cd..
ripeto, questo nel caso che tu voglia aprire il file A.txt e subito dopo cancellarlo.
ciao
MARCOS_32
11-10-2009, 11:56
cosa intendi per file/shortcut? cioè, vuoi che una volta eseguita l'apertura del file che volevi aprire, il comando successivo è la sua cancellazione?
se si, il codice sarebbe dovuto diventare
del files.txt
cd C:\prova\bla
dir /b >> c:\prova\files.txt
for /f "tokens=* delims=" %%a in (c:\prova\files.txt) do (
"%%a"
del "%%a")
cd..
ma siccome c'è qualche problema con l'andata a capo, famo
del files.txt
cd C:\prova\bla
dir /b >> c:\prova\files.txt
for /f "tokens=* delims=" %%a in (c:\prova\files.txt) do ("%%a")
for /f "tokens=* delims=" %%a in (c:\prova\files.txt) do (del "%%a")
cd..
ripeto, questo nel caso che tu voglia aprire il file A.txt e subito dopo cancellarlo.
ciao
favoloso! è esattamente ciò che cercavo, e funziona alla grande grazie mille!:D
possiamo anche concludere qui ;)
grazie ancora!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.