Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    banale.bat copy file nella stessa dir+data_ora

    'giorno a tutti,

    ho la necessità di copiare un file (pippo.txt) nella stessa dir in cui lo sto lavorando e vorrei rinominarlo aggiungendo data/ora - lancerei il .bat manualmente quando lo ritengo opportuno.

    ho provato:

    @ECHO OFF
    COPY C:\Folder\pippo.txt C:\Folder\ %date% %time%>pippo.txt
    EXIT

    ma non va

    come si sarà capito, di file batch capisco nulla ma in altri linguaggi è operazione banale

    tks in advance (!)

    Nik

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    codice:
    @ECHO OFF
    SET DATA=%DATE%
    SET ORA=%TIME%
    SET DataOra=%DATA:~6,4%%DATA:~3,2%%DATA:~0,2%%ORA:~0,2%%ORA:~3,2%%ORA:~6,2%
    COPY C:\Folder\Pippo.txt C:\Folder\Pippo_%DataOra%
    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
    ma molte grazie LeleFT

    giusto x capire come funziona, se volessi passare anche la posizione del file come variabile quindi sarebbe:

    @ECHO OFF
    SET DIRECTORY = C:\Folder
    SET DATA=%DATE%
    SET ORA=%TIME%
    SET DataOra=%DATA:~6,4%%DATA:~3,2%%DATA:~0,2%%ORA:~0,2 %%ORA:~3,2%%ORA:~6,2%
    COPY DIRECTORY\Pippo.txt DIRECTORY\Pippo_%DataOra%


  4. #4
    Mi rispondo da solo:

    @ECHO OFF
    SET DIRECTORY=%C:\prova%
    SET DATA=%DATE%
    SET ORA=%TIME%
    SET DataOra=%DATA:~6,4%%DATA:~3,2%%DATA:~0,2%%ORA:~0,2 %%ORA:~3,2%%ORA:~6,2%
    COPY DIRECTORY\Pippo.txt DIRECTORY\Pippo_%DataOra%.txt

    non va

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    In che senso, passare come parametro?

    Se intendi utilizzare una variabile per il percorso era quasi giusta la prima soluzione, solo che tra il nome della variabile, il simbolo di uguale e il valore della variabile non ci devono essere spazi:
    codice:
    VARIABILE=VALORE
    
    e non
    
    VARIABILE = VALORE
    se invece intendi passare da riga di comando, devi utilizzare le variabili implicite:
    codice:
    DIRECTORY=%1
    e richiamerai il tuo file (esempio, miobatch.bat) in questo modo:
    codice:
    C:\> miobatch C:\FOLDER
    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

  6. #6
    grazie davvero,

    avevo provato a passar la variabile in molti modi (anche quello indicato da te, senza spazi nella dichiarazione); il problema è che il file si trova in una dir il cui nome ha spazi (siti in lavorazione) e l'accrocchio non funge per quello [credo] - ma quanto è strict sto linguaggio ?

    beh se è semplice da risolvere posta un suggerimento

    in ogni caso grazie x il tuo tempo gia dedicato

    Ciao

    Nik

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    ...scusate l'intromissione!

    ti posto il bat che utilizzo io per farmi le copie di backup.
    Nota che le directory con lo spazio vanno indicate tra virgolette

    con questo bat mi copio una cartella e tutte le sue sottocartelle dal disco f:\prg\cba alla cartella sul desktop\backup\cba yyyymmddhhmmss

    codice:
    @echo off
    :: variables
    SET dateV="%date:~6,6%%date:~3,2%%date:~0,2%"
    if %time:~0,2% leq 9 (set timeV="0%time:~1,1%%time:~3,2%%time:~6,2%") else (set timeV="%time:~0,2%%time:~3,2%%time:~6,2%")
    set backupcmd=xcopy /s /c /d /e /h /i /r /k /y
    echo ### Backing up directory...
    
    %backupcmd% "F:\Prg\CBA" "C:\Documents and Settings\x\Desktop\Backup\CBA %dateV%%timeV%"
    
    echo Backup Completato!
    @pause
    ciao

  8. #8
    u r very welcome 123delphi321

    molte grazie per il tuo apporto; come dicevo a me interessa copiare un unico file all'interno della stessa cartella. Ho quindi provato a passare la variabile percorso come stringa (tra virgolette) come da te suggerito utilizzando lo script di LeleFT:

    @ECHO OFF
    SET DIRECTORY="C:\Documents and Settings\Nicemotion\Desktop\MyFolder"
    SET DATA=%DATE%
    SET ORA=%TIME%
    SET DataOra=%DATA:~6,4%%DATA:~3,2%%DATA:~0,2%%ORA:~0,2 %%ORA:~3,2%%ORA:~6,2%
    COPY DIRECTORY\Pippo.txt DIRECTORY\Pippo_%DataOra%

    ma non va

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ovvio che non va ... DIRECTORY e' una variabile ...

    Originariamente inviato da nicemotion
    @ECHO OFF
    SET DIRECTORY="C:\Documents and Settings\Nicemotion\Desktop\MyFolder"
    SET DATA=%DATE%
    SET ORA=%TIME%
    SET DataOra=%DATA:~6,4%%DATA:~3,2%%DATA:~0,2%%ORA:~0,2 %%ORA:~3,2%%ORA:~6,2%
    COPY %DIRECTORY%\Pippo.txt %DIRECTORY%\Pippo_%DataOra%
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10

    batch per duplicare file con giorno e ora nella stessa cartella

    Grazie oregon ! Funziona perfettamente

    [sapevo che prima o poi "ovvio" saltava fuori]

    lascio lo script completo per i posteri:

    @ECHO OFF
    SET DIRECTORY="C:\Documents and Settings\Nicemotion\Desktop\MyFolder"
    SET FILE="pippo.txt"
    SET DATA=%DATE%
    SET ORA=%TIME%
    SET DataOra=%DATA:~6,4%%DATA:~3,2%%DATA:~0,2%%ORA:~0,2 %%ORA:~3,2%%ORA:~6,2%
    COPY %DIRECTORY%\%FILE% %DIRECTORY%\%DataOra%_%FILE%
    echo Backup Completato!
    @pause

    Grazie a tutti e buon lavoro

    Nik

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 © 2025 vBulletin Solutions, Inc. All rights reserved.