Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Identificare cartella per lavoro

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

Identificare cartella per lavoro

Postdi pana25 » 09/04/06 15:08

Buoooooooooooon giorno a titti!!!! Domanda da 1.000.000.000.000.000.000.00...... di euro (visto che il dollaro è svalutato :P :P ): come posso fare a ad assegnare il nome di una cartella ad una variabile (in uno script batch) senza sapere il nome di tale cartella? Mi spiego meglio. A causa del lavoro che faccio (laboratorio di computer :lol: :lol: ) mi trovo circa 8/9 volte al giorno a dover fare dei backup per dei clienti. Vorrei per questo motivo accelerare i tempi e creare un batch che prima che lanci il ghost per il backup, mi estragga la cartella preferiti e la posta dalla cartella Documents and setting\%username% (questo per evitatare di dover estrarre tali file successivamente dopo e predere tempo) Il problema è che essendo il disco del cliente attacato al "pc dei backup" non riesco ad identificare automaticamente la cartella dell'utente contenente tali file da recuperare. Come caspio posso fare ?!?!!?!?!?!?!?!?!?!?!?!?!?!?
Grazie a tutti davvero.
pana25
Utente Junior
 
Post: 26
Iscritto il: 21/03/06 13:04
Località: Modena

Sponsor
 

Postdi Dylan666 » 10/04/06 12:41

Ma se backuppassi proprio la cartella "Documents and setting" cosa avresti di superfluo che non vuoi salvare?
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi pana25 » 10/04/06 18:15

Farei il backup della cartella 2 volte (in quanto viene fatto di tutto il disco dal ghost) e non mi servirebbe a nulla. Comunque dovrei estrarre manualmente posta e preferiti. DEVO (solo per motivi di tempo e quindi di soldi) farlo automaticamente il più possibile. Per il ripristiono non sarà un poblema una volte che il sistema sarà formattato e pulito. Il problema è proprio dirgli di recuperare le mail dalla cartella x:\Documents and settings\nome_account, dove x è il disco del cliente collegato al pc per i backup (ma questa variabile l'ho già rosolta) e nome_account è proprio la cartella che varia da pc a pc!!!!!!!! Uffa!!!!!!!!!!!!!!!!!!!!!
pana25
Utente Junior
 
Post: 26
Iscritto il: 21/03/06 13:04
Località: Modena

Postdi Alexsandra » 10/04/06 18:49

In Vb 6 con quanto sotto hai il nome utente
Codice: Seleziona tutto
Option Explicit
Declare Function GetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, _
    nSize As Long) As Long

Public Sub Main()
     Dim szBuffer As String, lBuffSize As Long, RetVal As Boolean
     szBuffer = Space(255)
    lBuffSize = Len(szBuffer)
    RetVal = GetUserName(szBuffer, lBuffSize)
    If RetVal Then
        MsgBox "Nome utente :" & UCase(Trim(szBuffer)), _
            vbInformation
    Else
        MsgBox Err.Description
    End If
End Sub
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi pana25 » 10/04/06 19:12

Ok grazie. Ma il problema non è sapere il nome utente del pc che uso per i backup ma sapere il presunto nome utente del disco che sto backupando. Immagino che sia difficile da capire e da spiegare (e probabilmente da fare) ma mi farebbe risparmiare minuti preziosi (specialmente quando fai 15 formattazioni (e quindi backup per non perdere i dati del cliente) al giorno (record stabilito sabato sera alle 23.00 :P :P :P . )
pana25
Utente Junior
 
Post: 26
Iscritto il: 21/03/06 13:04
Località: Modena

Postdi Dylan666 » 10/04/06 22:43

Ah, ora ho capito!
Cioè il programmino di backup dovrebbe far un "Cerca" per così dire della cartella "Preferiti" e salvarla.

Ma invece quella della posta contenuta nella directory col nome dell'utente, quale sarebbe?
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi Alexsandra » 10/04/06 22:54

x:\Documents and settings\nome_account
Il codice postato ti risolve nome_utente (che tu chiami account) tu vuoi trovare x ?
A differenza di Dylan io non ho mica capito cosa vuoi fare....son dura!!!
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi Dylan666 » 10/04/06 23:02

Lui vuole fare il backup di solo alcune cartelle che sono dentro alla cartella col nome utente.

Esempio:
C:\Documents and Settings\Dylan666\Preferiti
C:\Documents and Settings\pippo\Preferiti
C:\Documents and Settings\caio\Preferiti
C:\Documents and Settings\nome_qualsiasi\Preferiti

Come è possibile fare il backup automatic della cartella Preferiti se nei percorsi sopra elencati ogni volta c'è un "nome utente" diverso?
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi pana25 » 11/04/06 06:57

Dylan666 ha scritto:Lui vuole fare il backup di solo alcune cartelle che sono dentro alla cartella col nome utente.

Esempio:
C:\Documents and Settings\Dylan666\Preferiti
C:\Documents and Settings\pippo\Preferiti
C:\Documents and Settings\caio\Preferiti
C:\Documents and Settings\nome_qualsiasi\Preferiti

Come è possibile fare il backup automatic della cartella Preferiti se nei percorsi sopra elencati ogni volta c'è un "nome utente" diverso?


EASTTO. E' proprio questo il problema. Cmq per ora ho risolto inserendo il nome della cartella """nome_qualsiasi""" a mano. In un futuro, quando le mie conoscenze di programmazione saranno molto, ma molto, ma molto, migliorate magari lo potrò fare anche in automatico (Impossible is nothing.....). Questa è la parte di codice:

................
echo Inserisci il nome della cartella USER NAME
set /p user_name=
if "%user_name%"=="" goto exit_errore_11
...............
.........
.............
:outlook_express
cls
echo Programma di posta usato: Outlook express > "C:\ghost\temporanei\%cartella%\programma_posta.txt"
echo Recupero della posta in corso...
md "c:\ghost\temporanei\%cartella%\posta"
xcopy "%lettera1%:\Documents and Settings\%user_name%\Impostazioni locali\Dati applicazioni\Identities" "c:\ghost\temporanei\%cartella%\posta" /s /e /q
xcopy "%lettera1%:\Documents and Settings\%user_name%\Local Settings\Application Data\Identities" "c:\ghost\temporanei\%cartella%\posta" /s /e /q
echo Recupero della rubrica in corso ...
xcopy "%lettera1%:\%user_name%\Documents and Settings\Dati applicazioni\Microsoft\Address Book" "c:\ghost\temporanei\%cartella%\posta" /s /e /q
pause
goto inizio

Alla variabile %lettera1% viene assegnato la lettera dell'unità (d, e, f, g, ...)

Grazie a tutti.
pana25
Utente Junior
 
Post: 26
Iscritto il: 21/03/06 13:04
Località: Modena

Postdi Dylan666 » 11/04/06 12:12

Guarda che la variabile %username% dovrebbe essere di sistema su 2000/XP/2003
http://www.speedguide.net/read_articles.php?id=1547
http://www.experts-exchange.com/Program ... 71323.html
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi pana25 » 11/04/06 12:30

E' di distema sul pc che usi non su un dicso secondario che ci attacchi (slave). Altrimenti così era facile... E' come dire: "Voglio sapere il nome della cartella x automaticamente sapendo solo il percorso dell'unità per poi farne un backup!"
pana25
Utente Junior
 
Post: 26
Iscritto il: 21/03/06 13:04
Località: Modena

Postdi Dylan666 » 11/04/06 12:40

Azz giusto..
Vado il linea torica dicendo quello che farei se ne fossi capace :P
Con un DIR > lista.txt salverei la lista delle cartelle di "Documents and Settings"; poi con gli opportuni accorgimenti, da quelle righe estrapolerei le parti di percorso con il "nome utente"; infine, farei un bel cilco di copia della cartella Preferiti che sfrutti uno per uno i vari username trovati completando così ogni volta il percorso alla directory da duplicare.

Tutto questo non so come si possa fare, ne se sia possibile farlo solo con il DOS o ci volgia per forza Visual Basic o altro.

Quindi mi ritiro e mi limito a spostare in Programmazione :P
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi archimede » 11/04/06 13:35

listdir.bat
Codice: Seleziona tutto
@echo off
IF [%1]==[] goto :NO_DRIVE
for /f "tokens=1 delims=" %%d in ('dir /b /a:d %1":\Documents and Settings"') do echo %%d
goto :EOF
:NO_DRIVE
ECHO Usage: listdir X (dove X = lettera drive)
HTH.

Alessandro

[EDIT]Dimenticavo: non è affatto detto che l'archivio di posta elettronica sia in quella cartella.
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi Dylan666 » 22/04/06 03:00

Ho appena provatpp quel BAT e il risultato è questo:

Codice: Seleziona tutto
C:\WINDOWS\Desktop>listdir E
Default User
All Users
NetworkService
LocalService
Dylan666


Ma a parte le cartelle Dylan666 e All Users le altre lì non ci sono...

Codice: Seleziona tutto
E:\Documents and Settings>dir
 Il volume nell'unità E è WINDOWS XP
 Numero di serie del volume: 9035-6129

 Directory di E:\Documents and Settings

11/01/2004  21.07    <DIR>          .
11/01/2004  21.07    <DIR>          ..
11/01/2004  21.07    <DIR>          All Users
11/01/2004  21.30    <DIR>          Dylan666
               0 File              0 byte
               4 Directory     478.162.944 byte disponibili
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi archimede » 22/04/06 07:56

Dylan666 ha scritto:a parte le cartelle Dylan666 e All Users le altre lì non ci sono...
Il comando dir non elenca files e cartelle hidden.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi Dylan666 » 22/04/06 11:32

Ok, ma diciamo, se nella lista che volessi ottenere non volessi che venissero elencate le tre cartelle nascoste?
Infondo, per fare la cosa chiesta da pana25, non mi interesseno.
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi archimede » 22/04/06 11:50

Codice: Seleziona tutto
@echo off
IF [%1]==[] goto :NO_DRIVE
for /f "tokens=1 delims=" %%d in ('dir /b /a:d%2 %1":\Documents and Settings"') do echo %%d
goto :EOF
:NO_DRIVE
ECHO Usage: listdir X (dove X = lettera drive) [optional DIR Attribute]
C:\rumenta>listdir c
Administrator
Administrator.DOMINIO
ADMINI~1~PLU
All Users
Default User

C:\rumenta>listdir c -h
Administrator
Administrator.DOMINIO
ADMINI~1~PLU
All Users
HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi Alexsandra » 22/04/06 13:20

Ho provato anch'io il codice,mi compare per un istante la finestra dos e niente altro come mai?
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Postdi Dylan666 » 22/04/06 13:25

non devi doppiocloccare il BAT ma lanciarlo dalla finestra del CMD
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi Alexsandra » 22/04/06 13:29

Ho provato anche quello ma mi dà "comando sconosciuto......" ho messo il bat sul Desktop e in C ma non và cos'è che sbaglio
Avatar utente
Alexsandra
Utente Senior
 
Post: 2358
Iscritto il: 09/01/06 20:31

Prossimo

Torna a Programmazione


Topic correlati a "Identificare cartella per lavoro":


Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti