Visualizzazione dei risultati da 1 a 8 su 8

Discussione: xcopy per DOS

  1. #1

    xcopy per DOS

    salve ragazzi

    sto cercando di fare un'azione schedulata che giorno per giorno scarichi un file sul mio computer da una share di rete.
    La cosa importante è che in quella share ci sono diversi file che sono lo stesso tipo di file ma creato in modo giorni diversi(report excel creati giorno per giorno) e la cosa più complicata è che devo prendere SOLO il file di giornata...
    stavo facendo così co la creazione di un file BAT:

    for /f "tokens=1-4 delims=/.- " %%A in ('date /t') do (set MiaData=%%B-%%A-%%C)

    net use K: "\\sharedirete\miacartella"

    XCOPY K:\*.xls D:\Template /d: (%%B-%%A-%%C) /V

    net use K: /delete

    ma la data non viene creata..ovvero solo se faccio sul dos "set MiaData", ma nel file bat questa non viene creata...mi sto scervellando ma nn mi viene alcuna idea...
    ce ualche maniere d mettere la data aggiornata day by day?

    Grazie per l'eventuale aiuto
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Prova così:

    codice:
    net use K: "\\sharedirete\miacartella"
    for /f "tokens=1-3 delims=/ " %%a in ('date /t') do (
    XCOPY K:\*.xls D:\Template /d:%%b-%%a-%%c /V
    )
    net use K: /delete

  3. #3
    grazie perfetto.

    e nel caso io voglia fare il giorno precedente?

    mettiamo il caso oggi è il 15-02-2011
    e come estrazione voglio il giorno precedente il 14...
    come posso fare?
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    In batch già ricavare la data del giorno prima è un inferno.
    Se fai una ricerca su google troverai solo script chilometrici.
    Se puoi ricorrere a metodi alternativi ti posso fare uno script in powershell.

  5. #5
    scusa la mia ignoranza,
    cos'è powershell?
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  6. #6

  7. #7
    il problema è che c'è da scaricare un pacchetto.
    Il computer sulla quale devo andare a schedulare il batch non è mio, ma appartiene ad un'altra organizzazione che mi permette di schedulare il task per l'avvio del bat ma non mi permette di installare altri applicativi o pacchetti SW.

    Grazie ugualmente per il tuo grande aiuto.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Se non puoi installare niente allora ti arrangi con quello che passa il convento.

    Questo esempio che ti ho scritto copia i file di excel modificati tra ieri e oggi in una cartella che specifichi tu. Adatta i percorsi alle tue esigenze, salva il file con estensione vbs e poi doppio click.
    Una volta accertato il funzionamento dello script non ti resta che schedularlo alla cadenza che vuoi.

    codice:
    option explicit
    
    dim fileSystem, folder, file
    dim pathSource
    dim pathDest
    
    pathSource = "c:\tua cartella" 'cartella sorgente in cui cercare i file excel
    pathDest = "c:\backup\" 'cartella in cui copierai i file modificati tra ieri e oggi
    
    Set fileSystem = CreateObject("Scripting.FileSystemObject")
    Set folder = fileSystem.GetFolder(pathSource)
    
    for each file in folder.Files    
       If DateDiff("d", file.DateLastModified, Now) <= 1 and filesystem.getExtensionName(file) = "xls" Then
       	filesystem.CopyFile file.path , pathDest , True
       end if
    next

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.