Scrip Dos

di il
11 risposte

Scrip Dos

Salve a tutti, dovrei creare uno script di comandi dos per modificare la struttura di una directory.
In pratica io ho directory mostrata nell' allegato 1.jpg e attraverso uno script di comandi dos devo
trasformarla nella directory dell' allegato 2.jpg.

Grazie infinite a chi mi risponde.
Saluti Federico

11 Risposte

  • Re: Scrip Dos

    Usa la mkdir per creare cartelle... Esempio:
    mkdir gestionale\user\1\ID_ALT\ID_RAM\CD
    mkdir gestionale\user\2\ID_ALT\ID_RAM\CD
    oppure:
    for /l %%i in (1, 1, 2) do mkdir gestionale\user\%%i\ID_ALT\ID_RAM\CD
  • Re: Scrip Dos

    Grazie per avermi risposto. Purtroppo non sono molto pratico con i comandi dos. In pratica io dovrei copiare la cartella CD dentro la cartella 1, e la cartella CD dentro la cartella 2 in modo da ottenere la seguente struttura:

    gestionale-->1-->CD
    gestionale-->2-->CD

    come mostrato nell' allegato 2 del messaggio precedente.

    Il fatto è che io non so quante cartelle ci sono dentro la cartella user. Nell' allegato 1 del messaggio precedente dentro la cartella user ho messo due cartelle 1 e 2 per fare un esempio, ma ci potrebbero stare N cartelle. Inoltre non conosco i nomi delle cartelle, quello che conosco è questo:

    il nome della cartella gestionale, sotto gestionale c'è la cartella user, dentro la cartella user ci possono essere tante cartelle di cui non conosco il nome. Dentro ciascuna di queste cartelle la struttura è sempre la stessa, ID ALT --> ID RAM --> CD, di queste sotto cartelle non conosco il nome.

    In pratica quello che dovrei fare è cancellare la cartella user in modo che dentro la cartella gestionale ci siano tutte le cartelle che erano contenute in user. Poi dentro ciascuna di queste cartelle devo mettere la relativa cartella CD, eliminando quindi ID ALT e ID RAM.

    Spero di non essere stato troppo contorto, e spero che puoi darmi una mano.
    Grazie Federico
  • Re: Scrip Dos

    Ah ma io avevo capito il contrario...
    Allora usa il for /d:
    for /d %%a in ("gestionale\user\*") do (
        mkdir gestionale\%%a
        xcopy /e "gestionale\user\%%a\ID_ALT\ID_RAM\CD" "gestionale\%%a"
    )
    rem copia i contenuti di tutte le cartelle CD fuori dalla cartella user
  • Re: Scrip Dos

    Ciao grazie ancora per l'aiuto, scusa se ancora ti disturbo, ho provato a lanciare i comandi che mi dicevi ma mi dà questo errore:

    C:\>for /d %%a in("gestionale\user\*"> do ( mkdir gestionale\%%a xcopy /e "gesti
    onale\user\%%a\ID_ALT\ID_RAM\CD" "gestionale\%%a" >
    %%a non atteso.

    la cartella gestionale si trova dentro c.

    Grazie e scusami ancora
  • Re: Scrip Dos

    Salva in bat e inserisci il percorso assoluto.
  • Re: Scrip Dos

    Ciao grazie ancora delle informazioni. Senti purtroppo ho fatto come mi hai detto ma non
    mi modifica niente. Volevo chiederti un ultimo favore, potresti ricreare la struttura, come nell' allegato 1 del primo messaggio che ti ho creato, nel tuo computer e vedere se a te quei comandi te la modificano?

    Grazie e scusami per il disturbo.
    Federico
  • Re: Scrip Dos

    Ah sì c'è bisogno anche di un altro ciclo for adesso creo il programma funzionante e quando lo finisco te lo dico:)

    EDIT: Anzi non c'è bisogno di un altro ciclo for
  • Re: Scrip Dos

    Ecco:
    echo off
    cls
    echo Premere un tasto per avviare il programma ...
    pause >nul
    for /d %%A in ("gestionale\user\*") do (
        mkdir "gestionale\%%~nA"
        xcopy "gestionale\user\%%~nA\ID_ALT\ID_RAM\CD" "gestionale\%%~nA\CD" /e /i >nul
    )
    echo Operazione eseguita con successo! Premere un tasto per uscire ...
    pause >nul
    Se non vuoi fare modifiche al programma piazzalo direttamente nella cartella superiore a gestionale altrimenti metti il percorso assoluto. Per ulteriori informazioni FOR /?, XCOPY /?. Se vuoi fare una domanda qui se qualcosa non hai capito fai pure.
  • Re: Scrip Dos

    Grazie sei stato gentilissimo, funziona
    Senti volevo chiederti una cosa: delle cartelle ID_ALT, ID_RAM, CD io non conosco il nome, so solo che ci sono, come si modificherebbe il codice nel momento in cui non so a priori il nome di ID_ALT, ID_RAM e CD?

    Grazie ancora
    Federico
  • Re: Scrip Dos

    echo off
    cls
    echo Premere un tasto per avviare il programma ...
    pause >nul
    for /d %%A in ("gestionale\user\*") do (
        mkdir "gestionale\%%~nA"
        for /d %%B in ("gestionale\user\%%~nA\*") do (
            for /d %%C in ("gestionale\user\%%~nA\%%~nB\*") do (
                for /d %%D in ("gestionale\user\%%~nA\%%~nB\%%~nC\*") do (
                    xcopy "gestionale\user\%%~nA\%%~nB\%%~nC\%%~nD" "gestionale\%%~nA\%%~nD" /e /i >nul
                )
            )
        )
    )
    echo Operazione eseguita con successo! Premere un tasto per uscire ...
    pause >nul
  • Re: Scrip Dos

    Infinite grazie
    Federico
Devi accedere o registrarti per scrivere nel forum
11 risposte