Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    51

    inserire parametro in file Batch

    save,
    voglio copiare dei file da una cartella ad un altra, e visto che ogni volta devo fare sempre la stessa cosa per spostare file da un utente all'altro, cosi ho creato un file bat per semplificare le cose, ma visto che certe volte devo cambiare utente dove fare queste copie, poichè sul pc c'è piu di due utenti, come faccio a farmi chiedere l'utente dove scrivere i file da copiare?

    in breve: mi serve sapere come si prende un parametro da Input utente e come si puo usare all'interno del file .bat


    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Puoi passarglielo sulla riga di comando. Un esempio:

    File pippo.bat:
    codice:
    echo Primo parametro: %1
    echo Secondo parametro: %2
    echo Terzo parametro %3
    Eseguito in questo modo:

    codice:
    > pippo.bat Param1 Param2 Param3
    L'output:

    codice:
    Primo parametro Param1
    Secondo parametro Param2
    Terzo parametro Param3

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    51
    sicuramente non mi sono spiegato bene.

    il parametro lo vorrei inserire io, da utente.
    non voglio creare un file bat già con i parametri, visto che ogni volta è diverso.

    voglio lanciare il file .bat per la copia dei file che prima di copiare mi chiede su quale utente deve fare la copia, io da console, gli scrivo il nome dell'utente che si va ad inserire nel file e poi procede con la copia per l'utente da me inserito.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Io credo che tu non abbia colto il significato di "parametro".
    Cosa vorrebbe dire "il parametro lo voglio inserire io da utente"?
    Non è forse la definizione esatta di parametro?
    Parametro: valore variabile passato dall'utente quando richiama lo script...

    Se ho questo script batch (copya_pippo.bat):

    codice:
    COPY C:\PIPPO.TXT "C:\Documents And Settings\%1\Desktop\"
    Lo posso eseguire (come utente) in questo modo:

    codice:
    > copia_pippo.bat Mario
    > copia_pippo.bat Gino
    > copia_pippo.bat Luca
    E quello script copierà il file "C:\PIPPO.TXT", rispettivamente, nei desktop degli utenti Mario, Gino e Luca.

    Magari tu volevi che i nomi degli utenti ti venissero chiesti tramite una finestra o simile... beh, farlo con un file batch non è proprio così immediato, ma non vedo perchè complicarsi la vita per ottenere un risultato così semplice...


    Se non è ciò che chiedevi, cerca di esprimere meglio la richiesta...

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    51
    Magari tu volevi che i nomi degli utenti ti venissero chiesti tramite una finestra o simile...

    BRAVISSIMO!!!
    come si fa?

    e poi, visto che io faccio questo: c:\......\copy.bat Mario Rossi
    se metto cosi mi prende solo Mario
    se metto con le virgolette, mi prende "Mario Rossi" ed ovviamente questa cartella con le virgolette non esiste

    come faccio ad inserire il nome Mario Rossi con lo spazio?

    ho fatto anche con due variabili diverse, ma a volte ho un solo nome tipo Famiglia
    e se faccio %1 %2, con due variabili, lui prende solo la prima e aggiunge lo spazio, cosi da non trovare, ovviamente, la cartella \Famiglia \, ben differente da \Famiglia\

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Originariamente inviato da Aggelos
    Magari tu volevi che i nomi degli utenti ti venissero chiesti tramite una finestra o simile...

    BRAVISSIMO!!!
    come si fa?
    Non credo proprio si possa fare con un file batch. Almeno non senza l'ausilio di programmi esterni.
    E' per questo che ho scritto che non è così banale... né ha alcun senso farlo, visto che non sarebbe più un file batch, ma un file interattivo (batch è l'esatto opposto di interattivo).

    e poi, visto che io faccio questo: c:\......\copy.bat Mario Rossi
    se metto cosi mi prende solo Mario
    se metto con le virgolette, mi prende "Mario Rossi" ed ovviamente questa cartella con le virgolette non esiste

    come faccio ad inserire il nome Mario Rossi con lo spazio?

    ho fatto anche con due variabili diverse, ma a volte ho un solo nome tipo Famiglia
    e se faccio %1 %2, con due variabili, lui prende solo la prima e aggiunge lo spazio, cosi da non trovare, ovviamente, la cartella \Famiglia \, ben differente da \Famiglia\
    Cambia %1 con %~1. e passa il parametro tra virgolette. %~1 è una sostituzione che rimuove le virgolette dal parametro 1.

    codice:
    COPY ... "C:\Documents and Settings\%~1\..."
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    51
    ok,
    perfetto cosi
    grazie tante

  8. #8

    bat & change title

    Ciao, ho un "problema" simile, nel senso che:
    io dovrei lanciare un tool di un linguaggio di interrogazione dati (SAS base), solo che prima dell'apertura della sessione/finestra di SAS base, avrei la necessità (viste quante ne devo aprire per lavoro) di cambiare il titolo della/e finestra/e che apro. Ogni volta che apro una nuova sessione, questa si apre sempre con lo stesso nome, ovvero "SAS".

    Quello che al momento mi riescono con un'unico file .bat sono solo due cose:
    1) aprire una finestra dos inserendo la stringa -> digita nome sessione SAS:
    e valorizzare così una variabile (che poi se voglio in un echo rivedo quanto appena
    digitato);
    2) lanciare l'eseguibile ./sas.exe

    Come faccio a passare la mia variabile valorizzata in base al programma che sto testando, all'eseguibile in modo tale che la usi come titolo della finestra? Il "problema" si identifica nel thread come passaggio di un parametro? C'entra per caso il comando title?

    In sintesi con questo .bat vorrei:
    - lanciare il mio tool, dandogli una stringa di caratteri, che valorizzi poi il titolo della finestra del mio tool

    Sapreste aiutarmi? Cosa mi manca?

    Ciao e Grazie!
    Andrea
    Andrea

  9. #9

    Moderazione

    Non risolleviamo discussioni vecchie di secoli, apri un thread apposta per il tuo problema.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.