Copier fichiers dans l'ordre des filenames

MrSpace

Legacy Member
Ça semble con mais rien ne fonctionne...

Si j'ai 4 fichiers à copier sur un autre répertoire, Windows va les envoyer en même temps donc le petit de 15kb arrive bien avant celui de 65mb, même si celui de 65mb s'appelle 1.pdf et l'autre 2.pdf

J'ai besoin qu'ils soient envoyés en séquence car le folderbqui les reçoit les imprimé automatiquement et efface.. donc quand Windows envoie des petits fichiers plus vite que des gros, l'impression mélange toutes les feuilles....

Sent from my SM-N920W8 using Tapatalk
 
un petit batch file en dos..

donne du détail ..

le nom des 4 fichiers
le repertoire source
le repertoire destination
 
un petit batch file en dos..

donne du détail ..

le nom des 4 fichiers
le repertoire source
le repertoire destination
Sauf que mettons le fichier 1 fait 65 MB et le 2 fait 120kb je dois mettre un pause dans le batch qui laisse au moins le temps d'un plus gros fichier possible de passer sans que le suivant plus petit arrive en premier.

Je pourrais faire une règle genre MB/10 secondes...

J'étais en wifi durant mes tests je vais voir sur le gbit lan combien de temps un gros fichier prend à passer... Pour pas avoir à mettre 6.5sec chaque quand tu as 200 fichiers à passer.

Sent from my SM-N920W8 using Tapatalk
 
to xcopy ou robocopy va attendre que le premier soit fini avant de faire le deuxieme et ainsi de suite..
 
tu ne peux pas renommer (genre 1-2-3-4-5) tes fichiers et les envoyer par logiciel genre wetransfer, de cette facons tout sera recu en meme temps.

je fais souvent imprimer des livres de plan d'appartement ( cahier de +-50 page ) et il doivent évidemment être dans le bonne ordre. De cette facons jamais eu de trouble
 
Ils sont déjà nommés dans l'ordre.

Le print server scan un folder et la seconde tu drop de quoi dedans ça print.

Vu que Windows essaye d'optimiser l'ordre d'arrivée est pas dans l'ordre des noms de fichiers. Des gros fichiers vont arriver après certain petits...


Sent from my SM-N920W8 using Tapatalk
 
idee comme ca mais probablement que Sync Toy fait ca
c'est un utilitaire tres puissant de copie et synchro de dossier gratuit chez microsoft
je m'en sers pour vider les cartes memoires des cameras sur mes tournages tellement il est efficace
 
Tient j'ai pris 5 minutes pour te faire un petit script PowerShell qui copie tous les fichiers d'un folder X vers un folder Y, en y allant par ordre de noms.

- Prend le code de ma cmdlet PowerShell ci-dessous et sacre ca dans un fichier Copy-FilesByName.ps1 :

Code:
# ======================================================================================================
# .DESCRIPTION
#	Copies the items of the specified source folder to the specified destination folder one by one
# .PARAMETER SourceFolder
#	Mandatory. The path of the source folder from which to copy the files
# .PARAMETER DestinationFolder
#	Mandatory. The path of the destination on which to copy the files to
# .PARAMETER DestinationFolder
#	Optional. Whether the items should be sorted by name descending instead of ascending
# .EXAMPLE
#	Copy-FilesByName -SourceFolder "C:\Temp" -DestinationFolder "C:\Temp2"
# ======================================================================================================
[CmdletBinding()]
Param(
	[ValidateNotNullOrEmpty()]
	[String]$SourceFolder,

	[ValidateNotNullOrEmpty()]
	[String]$DestinationFolder,
	
	[switch]$Descending
)

Process
{
	Try 
	{
		# Ensures the source folder
		Write-Host ("Ensuring source folder with path '{0}'..." -f $sourceFolder);
		$sourceFolderExists = Test-Path $sourceFolder;
		
		if(!$sourceFolderExists) {
			throw ("The specified source folder with path '{0}' was not found." -f $SourceFolder);
		}
		
		# Ensures the destination folder
		Write-Host ("Ensuring destination folder with path '{0}'..." -f $DestinationFolder);
		New-Item -ItemType Directory -Force -Path $DestinationFolder | Out-Null;
		
		# Sorts the source folder items by name/ascending
		Write-Host ("Sorting items by name ascending...");
		$sortedSourceItems = Get-ChildItem -Path $SourceFolder | Sort Name;
		
		if($Descending) {
			$sortedSourceItems = $sortedSourceItems | Sort Name -Descending;
		}
		
		# Copies the sorted items one by one
		$sortedSourceItems | ForEach-Object {
			Write-Host ("Copying item '{0}' to destination folder..." -f $_.FullName);
			$_ | Copy-Item -Destination $DestinationFolder;
		}
		
		Write-Host ("Items have been copied successfully...") -foreground green;
	}
	Catch 
	{
		throw ("An error occured while copying files from folder '{0}' to folder '{1}' :  {2}" -f $SourceFolder, $DestinationFolder, $_.Exception.Message);
	}
}

- Ensuite met le script Copy-FilesByName.ps1 à un endroit de ton choix (à titre d'exemple on va dire au root de ton C:\) ouvre une console PowerShell et roule le script en exécutant la commande suivante :

Code:
C:\Copy-FilesByName.ps1 -SourceFolder "C:\Temp\MySourceFolder" -DestinationFolder "C:\Temp\MyDestinationFolder"

- J'ai aussi ajouté une switch -Descending qui te permet de copier par nom mais en ordre inverse, tu n'as qu'à ajouter la switch si c'est ce que tu veux :

Code:
C:\Copy-FilesByName.ps1 -SourceFolder "C:\Temp\MySourceFolder" -DestinationFolder "C:\Temp\MyDestinationFolder" -Descending

Ca va te prendre 5 secondes tant qu'à installer des programmes pour une niaiserie lol
 
Last edited:
Back
Top