エクスプローラーで同じファイルをコピーすると連番で新しいファイルが出来上がります。
それと同じような機能をPowerShellで書いてみました。
param(
[string]
$File="./note.txt"
)
$dir = Split-Path $File
$ext = [System.IO.Path]::GetExtension($File)
$name = [System.IO.Path]::GetFileNameWithoutExtension($File)
$i = 0
$file = Join-Path $dir ($name+$ext)
while(Test-Path $file)
{
$i++
$file = Join-Path $dir ($name+(" - copy({0:d3})" -f $i)+$ext)
}
echo "a" | Out-File -FilePath $file
結果
PS C:\Users\karet\Documents\PowerShell> ls *.txt
Directory: C:\Users\karet\Documents\PowerShell
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2024/11/02 10:56 3 note - copy(001).txt
-a--- 2024/11/02 10:56 3 note - copy(002).txt
-a--- 2024/11/02 10:56 3 note.txt
コメント