none
limite del comando copy per unione file RRS feed

  • Domanda

  • Buongiorno.

    Premetto che lavoro su un Windows 10 Pro a 64bit e ciò che sto per descrivere l'ho provato sia con Prompt dei Comandi sia con PowerShell, che tramite [Environment]::Is64BitProcess, mi restituisce true, e tramite [IntPtr]::Size mi restituisce 8, quindi è a 64 bit.

    Ho tentato di fare un merge di 50 files tramite copy /v /b file01+file02+....+file50 fileDest.

    Purtroppo questo processo si interrompe quando il file di destinazione fileDest raggiunge i 4192MB.

    La cosa ancor più strana è che, se eseguo un altro processo per mettere in append un altro file a questo fileDest, funziona ed il nuovo file di destinazione raggiunge anche i 5GB.

    es.: copy /v /b fileDest+file01 fileDest2

    allora il nuovo file di destinazione riesce a passare la barriera dei 4GB


    Come posso risolvere il mio problema?

    Devo rassegnarmi e modificare il mio script con i comandi powershell

    Get-Content .\file?.txt | Add-Content ...

    Get-Content files.* | Set-Content ...
    Get-Content file* | Out-File ...

    ????

    Grazie, cordialmente, Damiano



    • Modificato Comune di Verbania giovedì 28 dicembre 2017 17:18 aggiunto parametro fondamentale
    venerdì 15 dicembre 2017 13:19

Risposte

Tutte le risposte


  • Non capisco quali limiti possa incontrare per fermarsia a 4191mb... con un SO a 64 bit un file system ntfs il seguente script genera un file da 10gb. Ti ricordo che un comando dos arriva a 260 caratteri max
    copy /b f1.txt+f2.txt...................................................fn.txt    filedest.txt

    :: TestCopy.cmd 
    :: By Gastone Canali http://www.armadillo.it
    @echo off
    setlocal
    mkdir c:\temp >NUL 2>&1
    pushd c:\temp >NUL 2>&1 || goto :ERR
    echo.
    ver
    set A=1
    set GB=5
    for /L %%i IN (1,1,%GB%) DO (
        fsutil file createnew  %%i 1073741824 >NUL 2>&1
        if -%%i- neq -1-  call :add %%i
    )
    echo The file %GB%gb.bin will be create in c:\temp
    copy /b %A% %GB%gb.bin
    dir %GB%gb.bin
    :: Con il verify quando il file raggiunge i 4GB viene azzerato
    :: il file seguente sarà 2GB esatti
    :: copy /b %A% %GB%gbverify.bin /v
    timeout 10
    start .

    goto :EOF
    :add
      set A=%A%+%1
    goto :EOF

    :ERR
    echo error

    Usando powershell, potresti avere dei problemi di memoria,  con files grandi se usi il get-content senza usare il readcount , leggi il seguente link che spiega bene
    https://stackoverflow.com/questions/1783554/fast-and-simple-binary-concatenate-files-in-powershell

    ciao Gas


    Gastone Canali >http://www.armadillo.it


    Se alcuni post rispondono al tuo quesito(non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili. GRAZIE! Ricorda di dare un occhio ai link Click Here andHere



    venerdì 15 dicembre 2017 21:48
    Moderatore
  • Grazie 1000 della risposta.

    Infatti nemmeno io capisco perché si fermi a quel punto.

    Il comando in realtà non è come l'ho scritto nel post.. in verità ho usato dei caratteri jolly:

    copy /v /b "%upperFolder%\pag??" + "%UserInputPath%\pag??" "%outputFolder%\%UserInputPath%"
    che non dà alcun problema se non quando il file di output supera i 4192MB, allora a quel punto mi dà ERRORE DI VERIFICA (avendo usato il /v come opzione).

    Ora faccio altre prove e vi faccio sapere.

    Intanto grazie, Damiano

    martedì 19 dicembre 2017 17:20
  • Confermo che senza l'opzione /v, non c'è alcun problema e si supera il limite dei 4GB.

    A questo punto mi viene più difficile controllare l'esattezza della copia, però

    martedì 19 dicembre 2017 17:33
  • Immagino che nessuno di noi possa ovviare a questo problema dei 4 GB con il copy /v, quindi vi chiedo:

    Sapete se c'è un modo ufficiale ed efficace per aprire una richiesta di correzione bug a Microsoft?

    Grazie

    giovedì 28 dicembre 2017 17:15
  • Puoi eseguire e postare il risultato del comando winver.

    Saluti
    Nino


    www.testerlab.it

    venerdì 29 dicembre 2017 08:06
    Moderatore
  • Certo, ho l'ultima versione ma ecco qui i dettagli:

    mmhh dice che non posso postare immagini poiché il mio account non è verificato.

    Vabbe, trascrivo

    Versione 1709 (build SO 16299.125)

    Grazie e buon anno a tutti

    venerdì 29 dicembre 2017 15:15
  • Ok, prima di girare i dettagli dell'anomalia hai la possibilità di eseguire il test su una Build precedente?

    Saluti
    Nino


    www.testerlab.it

    venerdì 29 dicembre 2017 15:32
    Moderatore
  • Ok, prima di girare i dettagli dell'anomalia hai la possibilità di eseguire il test su una Build precedente?

    Saluti
    Nino


    www.testerlab.it

    Nino, il baco si presenta anche con "windows 7" ...


    C:\Users\gastone.canali>ver
    Microsoft Windows [Versione 6.1.7601]

    Ho modificato il batch, per fare alcune prove, se vuoi puoi testarlo anche tu. Come ho specificato nel batch  con il /v il file viene azzerato quando raggiunge i 4GB esatti, il file finale sarà della dimensione modulo di 4GB (es: 5GB mod 4GB= 1GB)

    In questi anni di scripting, non ho mai usato il /V, mi sono sempre fidato :) sinceramente non so cosa faccia, mi  sa che questo è un baco che arriva da lontano (la variabile di verifica è rimasta a 32 bit)  guarda caso 2^32 equivale a...

    Dove lo posti? Sono curioso? se è un segreto  posta nel forum dei moderatori

    Ciao Gas


    Gastone Canali >http://www.armadillo.it


    Se alcuni post rispondono al tuo quesito(non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili. GRAZIE! Ricorda di dare un occhio ai link Click Here andHere

    sabato 30 dicembre 2017 00:51
    Moderatore
  • Ciao Gastone, nessun segreto. Lo posto sul nostro Yammer ed eventualmente lo invio via mail a qualcuno del gruppo di Windows 10. Se vuoi puoi farlo anche tu che dovresti avere l'accesso.

    Nino


    www.testerlab.it

    sabato 30 dicembre 2017 08:23
    Moderatore
  • Ciao Gastone, nessun segreto. Lo posto sul nostro Yammer ed eventualmente lo invio via mail a qualcuno del gruppo di Windows 10. Se vuoi puoi farlo anche tu che dovresti avere l'accesso.

    Nino


    www.testerlab.it

    Su yammer non ho più accesso...

    Come dicevo. secondo me, il baco viene da lontano, ereditato dai SO a 32 bit nelle  varie compilazioni  

    piattaforme  positive al problema win7, win10,win 2012R2

    Microsoft Windows [Versione 6.1.7601]
    Microsoft Windows [Version 6.3.9600]
    Microsoft Windows [Versione 10.0.16299.125]

    Ciao Gas


    Gastone Canali >http://www.armadillo.it


    Se alcuni post rispondono al tuo quesito(non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili. GRAZIE! Ricorda di dare un occhio ai link Click Here andHere

    sabato 30 dicembre 2017 15:52
    Moderatore
  • Grazie 1000 a tutti.

    Allora attendo speranzoso :)

    Buon 2018


    Damiano
    mercoledì 3 gennaio 2018 14:03
  • Buonasera, vi scrivo per chiedervi se c'è un link pubblico dove seguire l'andamento del bug (senza rompervi continuamente le scatole qui) in modo che io possa vedere l'evolversi del problema.

    Non so bene come funzioni Yammer, se bisogna per forza essere registrati oppure se ci sono dei thread pubblici.

    Grazie, Damiano

    lunedì 15 gennaio 2018 16:30
  • Ciao, quell'area è privata ed è riservata al personale Microsoft ed MVP.

    Se vuoi puoi segnalare il problema sul forum TechNet localizzato in lingua inglese https://social.technet.microsoft.com/Forums/en-US/home

    Saluti
    Nino


    www.testerlab.it

    mercoledì 17 gennaio 2018 10:33
    Moderatore
  • OK, grazie.

    Ho aperto un thread anche in inglese a questo indirizzo.

    https://social.technet.microsoft.com/Forums/en-US/1bbc817d-e380-47b1-8988-1c1ee2127986/bug-copy-v?forum=win10itprogeneral

    Buon lavoro e buon weekend

    venerdì 23 febbraio 2018 10:49