PowerShell Dátum hozzáadása a fájlnévhez [6 Ways]
Ha nem szeretné átnevezni a fájlt, és csak a karakterlánc formátumát szeretné megváltoztatni, akkor közvetlenül ugorhat a csatlakozási útvonal szakaszra.
Az Elem átnevezése parancsmag használatával
Használja a -Rename-Item parancsmagot a dátum hozzáadásához a fájlhoz a PowerShellben
Használja az -Elem átnevezése parancsmagot:
$Filename = "C:\Test1\File1.txt"
$newFilename = "C:\Test1\File1_$(Get-Date -Format yyyy-MM-dd).txt"
Rename-Item -Path $Filename -NewName $newFilename
Write-Host "New filename: $newFilename"Kimenet:
New filename: C:\Test1\File1_2023-04-25.txt
A fenti kód a következő módon működik:
- Először beállítja a
$Filenameváltozót az átnevezni kívánt eredeti fájl elérési útjára, amely a C:\Test1\File1.txt. - Ezután létrehozunk egy új fájlnevet úgy, hogy a fájlnév végéhez hozzáfűzzük az aktuális dátumot
éééé-hh-nnformátumban. A dátum kívánt formázásához aGet-Dateparancsot használjuk a-Formatparaméterrel. Az eredményül kapott új fájlnevet a$newFilenameváltozó tárolja. - Ezt követően a
Elem átnevezéseparanccsal az eredeti fájlt az új fájlnévre nevezi át. A-Pathparaméter a$Filenameváltozóban tárolt kezdeti fájl elérési útjának meghatározására szolgál, míg a-NewNameparaméter. az új fájlnév megadására szolgál, amely a$newFilenameváltozóban van tárolva - Végül a szkript a
C:\Test1\Fájl1.txtnevétC:\Test1\Fájl1_2023-04-19.txt-ra módosítja, aholyyyy- MM-nnaz aktuális dátumot jelzi az év-hónap-nap elrendezésben.
System.IO.Path osztály használata Move-Item parancsmaggal
Ha dátumot szeretnénk hozzáadni a fájlnévhez, különféle System.IO.Paths metódusokat és Move-Item parancsmagot használhatunk a metódus nevének megváltoztatásához.
- A
GetDirectoryName()használatával kaphatja meg a könyvtár nevét. - Használja a
GetFileNameWithoutExtension()parancsot a fájlnév kiterjesztés nélküli lekéréséhez. - A fájl kiterjesztésének lekéréséhez használja a
GetExtension()parancsot. - Az aktuális dátum hozzáfűzése a fájlnévhez, és a végére adjon hozzá kiterjesztést.
- Használja a
combine()metódust a könyvtár és a fájlnév kombinálásához. Elem áthelyezéseparancsmag a fájl nevének módosításához.
Használja a -csere operátort:
[string]$filePath = "C:\Users\Arpit\Desktop\powershell\File1.txt";
[string]$directory = [System.IO.Path]::GetDirectoryName($filePath);
[string]$strippedFileName = [System.IO.Path]::GetFileNameWithoutExtension($filePath);
[string]$extension = [System.IO.Path]::GetExtension($filePath);
[string]$newFileName = $strippedFileName +"-"+[DateTime]::Now.ToString("yyyyMMdd-HHmmss") + $extension;
[string]$newFilePath = [System.IO.Path]::Combine($directory, $newFileName);
Move-Item -LiteralPath $filePath -Destination $newFilePath;
start-sleep -Seconds 30Kimenet:
File3-20230624-132353A [System.IO.Path]::ChangeExtension() módszer használata
Használja a [System.IO.Path]::ChangeExtension() metódust a dátum hozzáadásához a fájlhoz a PowerShellben. Ez a módszer akkor hasznos, ha módosítani szeretné a fájl kiterjesztését is.
A ChangeExtension() metódus használata:
$filename = "C:\Test1\File1.txt"
$newExtension = [System.IO.Path]::ChangeExtension($filename, ".txt")
$newFilename = "{0}-{1}{2}" -f [System.IO.Path]::GetFileNameWithoutExtension($newExtension), (Get-Date -Format 'yyyy-MM-dd'), [System.IO.Path]::GetExtension($newExtension)
Rename-Item $filename $newFilename
Write-Host "New filename: $newFilename"Kimenet:
New filename: File1-2023-04-25.txtA fenti kód a következő módon működik:
- Felveszi egy szöveges fájl elérési útját, és hozzárendeli a
$filenameváltozóhoz. - Ezután a .NET osztály
System.IO.Pathhasználatával módosítja a$filenamefájlkiterjesztést.txt-re, és hozzárendeli az új elérési utat a$newExtensionváltozó. - Ezenkívül a
System.IO.Path.NET osztályt használja a fájlnév kiterjesztés nélküli kibontására a$newExtensionfájlból, és a$newFilenamemappában tárolja. - Ezután hozzáfűzi az aktuális dátumot
éééé-hh-nnformátumban, és a fájl kiterjesztését a$newFilenamekarakterlánchoz a -f. - Végül megjeleníti a kimenetet a
Write-Host parancsmaghasználatával úgy, hogy hozzáadja az aktuális dátumot a fájlnévhez, és átnevezi az eredeti fájlt az új fájlnévvel.
A Join-Path parancsmag használatával
Használja a Join-Path parancsmagot a dátum hozzáadásához a fájlhoz a PowerShellben
A Join-Path parancsmag használata:
$filename = "File1"
$path = "C:\Test1\"
$date = Get-Date
$formatDate = $date.ToString("yyyy-MM-dd")
$newFilename = "$filename-$formatDate.txt"
$newPath = Join-Path -Path $path -ChildPath $newFilename
Write-Host "$newpath"
Kimenet:
C:\Test1\File1-2023-04-19.txtA Join-Path parancsmag hasznos módja az elérési utak és fájlnevek kombinálásának a PowerShellben. Például létrehozhatunk vele egy új fájlnevet a dátum hozzáadásával. Például a fenti kód a következő módon működik:
- A
$filenameváltozó értékét"Fájl1"értékre állítja. - A
$pathváltozó értékét C:\Test1 értékre állítja. - A
Get-Dateparancsmag segítségével lekéri az aktuális dátumot és időt, és a$dateváltozóban tárolja. - Formázza a dátumot karakterláncként
yyyyMMddformátumban aToString()metódussal, és tárolja a$formatDateváltozóban. - Összefűzi a
$filenameés$formatDateváltozókat kötőjel elválasztóval és.txtfájlkiterjesztéssel, és a$newFilename változóban tárolja. - A
Join-Pathparancsmag segítségével kombinálja a$pathés a$newFilenameváltozókat, hogy teljes fájl elérési utat hozzon létre, és a$newPath. - Végül a
Write-Hostparancsmag segítségével kiadja a$newPathértékét a konzolnak a dátumhoz fűzött dátummal a leírt formátumban.
A -f Format Operator használatával
Használja a -f formátumú operátort dátum hozzáadásához a fájlhoz a PowerShellben
Használja az -f formátum operátort:
$filename = "File1"
$path = "C:\Test1\"
$date = Get-Date
$formatDate = $date.ToString("yyyy-MM-dd")
$newFilename = "{0}_{1}.txt" -f $filename, $formatDate
Write-Host "$newFilename"Kimenet:
File1_2023-04-19.txtA fent bemutatott kód hasonló az előzőhöz, de a -f formátumú operátort használja a dátum és a fájlnév összekapcsolásához.
Pontosabban, a $newFilename="{0}_{1}.txt" -f $fájlnév, $formattedDate sor egy új karakterláncot generál a fájlnévhez egy olyan formátumú karakterlánc használatával, amely helyőrzőket tartalmaz {0} és {1} a $filename és $formattedDate változókhoz.
A -f operátor lecseréli a helyőrzőket a változók megfelelő értékeire. A végén a kimenet a teljes fájlnevet és az aktuális dátumot mutatja éééé-hh-nn formátumban, aláhúzásjellel elválasztva, és .txt kiterjesztéssel rendelkezik.
A -replace operátor használatával
Használja a -replace operátort dátum hozzáadásához a PowerShell-fájlhoz
Használja a -csere operátort:
$filename = "File1.txt"
$path = "C:\Test1\"
$date = Get-Date
$formatDate = $date.ToString("yyyy-MM-dd")
$newFilename = $filename -replace "\.txt$", "-$formatDate.txt"
Write-Host "$newFilename"
Kimenet:
File1-2023-04-19.txtEz a fenti kód hasonló az előző két kódkerítéshez, de a -replace operátort használja a $filename fájl .txt kiterjesztésének lecserélésére. kötőjellel és a formázott dátummal a $formattedDate-ban, és a frissített fájlnevet a $newFilename változóban tárolja.
Végül a végső kimenet megjelenik a Fájl1 nevű fájl teljes elérési útjával és az aktuális dátummal éééé-hh-nn formátumban, aláhúzással elválasztva. és .txt fájlkiterjesztéssel.
Figyelembe véve a fenti megoldásokat, a dátum hozzáadása egy fájlnévhez a PowerShellben egy gyakori feladat, amelyet a rename-item parancsmag, System.IO.Path osztály Move-Item paraméterrel lehet végrehajtani. cmdlet, Join-Path cmdlet, a -f formátum operátor, a -replace operátor, [System.IO.Path ]::ChangeExtension() metódus.
Ez minden arról szól, hogy a PowerShell dátumot ad a fájlnévhez.
