PDA

View Full Version : Metodo per Spostare File senza Avviso


Joy2024
30-08-2024, 12:50
Buongiorno,

essendo stufo marcio dell'avviso che compare in Windows 10 ogni volta che sposto dei file che hanno lo stesso nome (e quindi chiede di sovrascriverlo, o duplicarlo con il numero progressivo nelle parentesi tonde), chiedo a voi: c'è un metodo per far si che i file si numerano sequenzialmente senza sostituirsi e senza far comparire ogni volta l'avviso ? Grazie.

Nicodemo Timoteo Taddeo
30-08-2024, 19:34
Buongiorno,

essendo stufo marcio dell'avviso che compare in Windows 10 ogni volta che sposto dei file che hanno lo stesso nome (e quindi chiede di sovrascriverlo, o duplicarlo con il numero progressivo nelle parentesi tonde), chiedo a voi: c'è un metodo per far si che i file si numerano sequenzialmente senza sostituirsi e senza far comparire ogni volta l'avviso ? Grazie.

Dubito ci sia un modo con esplora file che è molto limitato come file manager, giusto per semplici operazioni. Io quando devo fare operazioni impegnative e massive su file e directory uso file manager alternativi che possono offrire nelle loro impostazioni questa possibilità Ad esempio in MultiCommander che è quello che uso di più negli ultimi anni c'è questa:

https://images2.imgbox.com/4d/5e/JK67YTa5_o.jpg

Sinceramente non so se funziona e come dato che solitamente non l'adopero ma se vuoi puoi vedere se fa per te. Il programma è gratuito ed offre anche una versione portatile, così si evita l'installazione obbligatoria:

https://multicommander.com/

Se non ricordo male è possibile anche con Teracopy se per caso già lo usi, non ci metto al mano sul fuoco perché sono anni che non ho avuto modo di utilizzarlo.

Joy2024
06-09-2024, 17:18
Grazie mille.

Alex_Trask
19-09-2024, 19:23
La butto lì, mai pensato di usare file batch?
Credo che in qualche modo si possano definire anche le regole di copia, anche se non mi è mai stato necessario.

pps
21-09-2024, 15:21
Buongiorno,

essendo stufo marcio dell'avviso che compare in Windows 10 ogni volta che sposto dei file che hanno lo stesso nome (e quindi chiede di sovrascriverlo, o duplicarlo con il numero progressivo nelle parentesi tonde), chiedo a voi: c'è un metodo per far si che i file si numerano sequenzialmente senza sostituirsi e senza far comparire ogni volta l'avviso ? Grazie.

Prova questa soluzione, copia e incolla, con un editor di testo il codice e salvalo con estensione .Ps1.
apre una finestra di selezione file (anche multipli), apre una finestra di selezione destinazione, conserva la numerazione anche in sessioni diverse
# Importa il modulo necessario per la finestra di dialogo
Add-Type -AssemblyName System.Windows.Forms

# Funzione per selezionare i file sorgente
function Select-SourceFiles {
$openFileDialog = New-Object System.Windows.Forms.OpenFileDialog
$openFileDialog.Title = "Seleziona i file da copiare"
$openFileDialog.Filter = "Tutti i file (*.*)|*.*"
$openFileDialog.Multiselect = $true

if ($openFileDialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) {
return $openFileDialog.FileNames
}
return $null
}

# Funzione per selezionare o creare la cartella di destinazione
function Select-DestinationFolder {
do {
$folderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
$folderBrowser.Description = "Seleziona o crea la cartella di destinazione"
$folderBrowser.ShowNewFolderButton = $true

if ($folderBrowser.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) {
return $folderBrowser.SelectedPath
}

# Chiedi all'utente se vuole creare una nuova cartella
$createNewFolder = [System.Windows.Forms.MessageBox]::Show("Vuoi creare una nuova cartella?", "Nuova Cartella", [System.Windows.Forms.MessageBoxButtons]::YesNo)

if ($createNewFolder -eq [System.Windows.Forms.DialogResult]::Yes) {
# Chiede il nome della nuova cartella
$newFolderName = [System.Windows.Forms.Interaction]::InputBox("Inserisci il nome della nuova cartella:", "Nome Nuova Cartella", "NuovaCartella")
if (-not [string]::IsNullOrWhiteSpace($newFolderName)) {
# Crea la nuova cartella nella posizione corrente del browser
$newFolderPath = Join-Path -Path $folderBrowser.SelectedPath -ChildPath $newFolderName
New-Item -ItemType Directory -Path $newFolderPath -Force | Out-Null
return $newFolderPath
}
}

} while ($true)
}

# Funzione principale per copiare i file
function Copy-FilesWithProgression {
$sourceFiles = Select-SourceFiles
if (-not $sourceFiles) { return }

$destinationPath = Select-DestinationFolder
if (-not $destinationPath) { return }

# Recupera il numero massimo esistente per i file già copiati nella destinazione
$existingFiles = Get-ChildItem -Path $destinationPath | Where-Object { $_.Name -match "\d+\.\w+$" }
$maxNumber = 0

foreach ($file in $existingFiles) {
if ($file.Name -match "(\d+)(\.\w+)$") {
$number = [int]$matches[1]
if ($number -gt $maxNumber) {
$maxNumber = $number
}
}
}

# Incrementa il numero per il prossimo file da copiare
$nextNumber = $maxNumber + 1

# Copia i file dalla sorgente alla destinazione con il numero progressivo
foreach ($file in $sourceFiles) {
# Estrae il nome e l'estensione del file originale
$originalFileName = [System.IO.Path]::GetFileNameWithoutExtension($file)
$extension = [System.IO.Path]::GetExtension($file)

# Crea il nuovo nome del file con il numero progressivo
$newFileName = "{0}_{1}{2}" -f $originalFileName, $nextNumber, $extension

# Copia il file nella destinazione con il nuovo nome
Copy-Item -Path $file -Destination (Join-Path -Path $destinationPath -ChildPath $newFileName)

# Incrementa il numero per il prossimo file da copiare
$nextNumber++
}
}

# Esegui la funzione di copia dei file
Copy-FilesWithProgression

SysLack
22-09-2024, 11:02
apre una finestra di selezione file (anche multipli), apre una finestra di selezione destinazione, conserva la numerazione anche in sessioni diverse

Grazie per lo script, è un modello interessante da poter usare anche per altre eventuali necessità.