Principale utente con più risposte
limite del comando copy per unione file

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
Risposte
-
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ò
- Proposto come risposta Fabrizio-GMVP, Moderator martedì 2 gennaio 2018 08:42
- Contrassegnato come risposta Comune di Verbania venerdì 5 gennaio 2018 13:50
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 errorUsando 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
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
- Modificato GastoneCanaliModerator sabato 30 dicembre 2017 00:15
-
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
-
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ò
- Proposto come risposta Fabrizio-GMVP, Moderator martedì 2 gennaio 2018 08:42
- Contrassegnato come risposta Comune di Verbania venerdì 5 gennaio 2018 13:50
-
-
-
-
-
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 -
-
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 -
Grazie 1000 a tutti.
Allora attendo speranzoso :)
Buon 2018
Damiano- Modificato Comune di Verbania mercoledì 3 gennaio 2018 14:04 dimenticato firma
-
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
-
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
www.testerlab.it
-