|
|
|
|
Strumenti |
30-08-2024, 12:50 | #1 |
Junior Member
Iscritto dal: May 2024
Messaggi: 7
|
Metodo per Spostare File senza Avviso
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. |
30-08-2024, 19:34 | #2 | |
Senior Member
Iscritto dal: Mar 2008
Messaggi: 18700
|
Quote:
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. |
|
06-09-2024, 17:18 | #3 |
Junior Member
Iscritto dal: May 2024
Messaggi: 7
|
Grazie mille.
|
19-09-2024, 19:23 | #4 |
Senior Member
Iscritto dal: Jun 2009
Messaggi: 1176
|
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.
__________________
Trattato positivamente con: - aurunmilla - Sirus & Kanopus - FRN2003 - schumyFast - 4per4 - Ozio - iceone - murù - The March - felix777 - iao - Stedd e tanti altri... |
21-09-2024, 15:21 | #5 | |
Senior Member
Iscritto dal: Oct 2002
Città: Vicino a un ponte
Messaggi: 1265
|
Quote:
apre una finestra di selezione file (anche multipli), apre una finestra di selezione destinazione, conserva la numerazione anche in sessioni diverse Codice:
# 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
__________________
ASUS PRIME Z490-A | Intel® i7 10700K | Asus GeForce GTX 4060 OC | CORSAIR Vengeance LPX DDR4 3000 -32Gb- | Samsung 970 PRO M.2 512 Gb | Samsung SSD 840 PRO 256 Gb | 2x Samsung 970 EVO PLUS M.2 1 Tb |
|
Ieri, 11:02 | #6 |
Member
Iscritto dal: Feb 2024
Messaggi: 56
|
|
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:18.