PowerShell'de Dosyalar Nasıl Kopyalanır ve Yeniden Adlandırılır?
Bu makalede, PowerShell kullanarak dosyaları kopyalamak ve yeniden adlandırmak için çeşitli yöntemleri açıklayacağım, daha iyi anlamanıza yardımcı olacak örnekler ve tam komut dosyaları sunacağım.
PowerShell'de bir dosyayı kopyalamak ve yeniden adlandırmak için Copy-Item ve Rename-Item cmdlet'lerinin bir kombinasyonunu kullanabilirsiniz. Öncelikle dosyayı istediğiniz konuma kopyalamak için Copy-Item'i kullanın ve ardından yeni kopyalanan dosyayı yeniden adlandırmak için Rename-Item'i kullanın. Örneğin:
Copy-Item -Path "C:\Source\example.txt" -Destination "C:\Destination"
Rename-Item -Path "C:\Destination\example.txt" -NewName "newexample.txt"Bu komut dosyası, example.txt dosyasını Source klasöründen Destination klasörüne kopyalayacak ve ardından newexample.txt olarak yeniden adlandıracaktır. .
PowerShell ile Dosyaları Kopyalayın
Yeniden adlandırmaya başlamadan önce dosyaları kopyalamanın temelleriyle başlayalım. PowerShell'de dosyaları kopyalamak için kullanılan birincil cmdlet Copy-Item'dir. Bu cmdlet, dosyaları ve dizinleri yeni bir konuma kopyalamanıza olanak tanır.
Temel Kopyalama Komutu
Tek bir dosyayı bir konumdan diğerine kopyalamanın basit bir örneği:
Copy-Item -Path "C:\Source\file.txt" -Destination "C:\Destination\file.txt"Birden Çok Dosyayı Kopyala
PowerShell'de birden fazla dosyayı kopyalamak için joker karakterler kullanabilirsiniz:
Copy-Item -Path "C:\Source\*.txt" -Destination "C:\Destination"Bu komut, tüm .txt dosyalarını Kaynak dizininden PowerShell'deki Hedef dizinine kopyalayacaktır.
Klasör Yapısını Korumak
Bir dizinin tamamını kopyalamak ve klasör yapısını korumak istiyorsanız PowerShell -Recurse parametresini kullanabilirsiniz:
Copy-Item -Path "C:\SourceFolder" -Destination "C:\DestinationFolder" -RecursePowerShell ile Dosyaları Yeniden Adlandırın
PowerShell'de bir dosyayı yeniden adlandırmak için Rename-Item cmdlet'ini kullanırsınız. Bu cmdlet tek bir dosyanın veya klasörün adını değiştirir.
Temel Yeniden Adlandırma Komutu
İşte bir dosyayı yeniden adlandırmanın bir örneği:
Rename-Item -Path "C:\Source\oldname.txt" -NewName "newname.txt"Dosyaları Tek Adımda Kopyalayın ve Yeniden Adlandırın
PowerShell'de bir dosyayı aynı anda kopyalayan ve yeniden adlandıran tek bir cmdlet olmasa da, her iki eylemi birlikte gerçekleştirmek için bir komut dosyasında Öğeyi Kopyala ile Öğeyi Yeniden Adlandır ile birleştirebilirsiniz .
Komut Dosyası Bloğu Kullanma
PowerShell'de bir dosyayı kopyalayan ve yeniden adlandıran örnek bir komut dosyası:
$fileToCopy = "C:\Source\file.txt"
$destinationFolder = "C:\Destination"
$newFileName = "newfile.txt"
Copy-Item -Path $fileToCopy -Destination $destinationFolder
Rename-Item -Path (Join-Path $destinationFolder (Split-Path $fileToCopy -Leaf)) -NewName $newFileNameBu PowerShell betiği bir kaynak dosyayı alır, hedefe kopyalar ve ardından kopyalanan dosyayı belirttiğiniz yeni adla yeniden adlandırır.
Kodu VS kodunu kullanarak çalıştırdım ve çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz:
Dosya Uzantılarını İşleme
Dosya uzantısını korumanız ve yalnızca temel adı değiştirmeniz gerekiyorsa, bir FileInfo nesnesinin BaseName ve Extension özelliklerini kullanabilirsiniz:
$fileToCopy = "C:\Source\file.txt"
$destinationFolder = "C:\Destination"
$newBaseName = "newfile"
$fileInfo = Get-Item $fileToCopy
$newFileName = $newBaseName + $fileInfo.Extension
Copy-Item -Path $fileToCopy -Destination $destinationFolder
Rename-Item -Path (Join-Path $destinationFolder $fileInfo.Name) -NewName $newFileNamePowerShell'de Gelişmiş Kopyalama ve Yeniden Adlandırma Teknikleri
Bazen dosyaları zaman damgası eklemek veya dosya adlarına sayıları artırmak gibi daha karmaşık bir yöntemle kopyalamanız ve yeniden adlandırmanız gerekebilir.
Dosya Adlarına Zaman Damgası Ekleme
Kopyalanan bir dosyanın adına zaman damgası eklemek için Get-Date cmdlet'ini kullanabilirsiniz:
$fileToCopy = "C:\Source\file.txt"
$destinationFolder = "C:\Destination"
$timestamp = Get-Date -Format "yyyyMMddHHmmss"
$newFileName = "file_$timestamp.txt"
Copy-Item -Path $fileToCopy -Destination $destinationFolder
Rename-Item -Path (Join-Path $destinationFolder (Split-Path $fileToCopy -Leaf)) -NewName $newFileNameDosya Adlarını Artırma
Bir dosyayı benzer adlara sahip dosyaların bulunduğu bir dizine kopyalıyorsanız, dosya adını artırmak isteyebilirsiniz:
$fileToCopy = "C:\Source\file.txt"
$destinationFolder = "C:\Destination"
$baseName = "file"
$extension = ".txt"
$index = 1
do {
$newFileName = "$($baseName)_$($index)$($extension)"
$index++
} while (Test-Path (Join-Path $destinationFolder $newFileName))
Copy-Item -Path $fileToCopy -Destination $destinationFolder
Rename-Item -Path (Join-Path $destinationFolder (Split-Path $fileToCopy -Leaf)) -NewName $newFileNameBu komut dosyası, hedef klasörde bulunmayan bir dosya adı bulana kadar dizini artırmaya devam edecektir.
Çözüm
Bu PowerShell eğitiminde, Copy-Item ve Rename-Item cmdlet'lerini kullanarak PowerShell'de dosyaların nasıl kopyalanacağını ve yeniden adlandırılacağını açıkladım.
