View Single Post
Old 07-11-2008   #10 (permalink)
Kirk Munro [MVP]


 
 

Re: File name prefix?

Hi Megan,

Here's a slight variation on Shay's script that adds support for renaming
hidden files as well, plus it detects if some files already have the prefix
you want and skips them.

Get-ChildItem C:\Scripts -Force | Where-Object {(-not $_.PSIsContainer) -and
($_.name -notmatch "^$($_.directory
..name)_")} | Rename-Item -NewName {$_.directory.name + '_' +
$_.name} -Whatif

Be careful with the line wrap. This is a one-liner, so make sure you put it
on one line when you paste it into PowerShell.

This will allow you to run the script on the same folder over time as you
add files to it without worrying about it re-prefixing all of your files
that already have the prefix.

--
Kirk Munro [MVP]
Poshoholic
http://poshoholic.com

"Shay Levy [MVP]" <no@xxxxxx> a ?crit dans le message de groupe de
discussion : 95d808933532d8cab1731886fa4b@xxxxxx...
Quote:

> Hi Megan,
>
>
> Here's a sample to rename all files in c:\scripts directory,
> remove -whatIf when you are ready to perform the rename:
>
>
> # three files in c:\scripts
>
> PS > dir c:\scripts
>
> Mode LastWriteTime Length
> e ---- ------------- ------ ----
> -a--- 7/11/2008 13:33:10 0.0 B
> -a--- 7/11/2008 13:33:10 0.0 B
> -a--- 7/11/2008 13:33:10 0.0 B file3.txt
>
> # get all files in c:\scripts, exclude directories, rename each file to
> 'parentDirectoryName_fileName.ext'
>
> PS> dir c:\scripts | where {!$_.PSIsContainer} | rename-item -newName
> {$_.directory.name+"_"+$_.name} -whatIf
>
> What if: Performing operation "Rename File" on Target "Item:
> C:\scripts\file1.txt Destination: C:\scripts\scripts_file1.txt".
> What if: Performing operation "Rename File" on Target "Item:
> C:\scripts\file2.txt Destination: C:\scripts\scripts_file2.txt".
> What if: Performing operation "Rename File" on Target "Item:
> C:\scripts\file3.txt Destination: C:\scripts\scripts_file3.txt".
>
>
>
>
> ---
> Shay Levy
> Windows PowerShell MVP
> blog: http://blogs.microsoft.co.il/blogs/ScriptFanatic
>
>
>
> M> Hi,
> M> M> I'm new to powershell and having a similar problem where I'm trying
> M> to rename the file with folder name as the prefix.
> M> M> eg. C:\scripts\test.txt
> M> becomes
> M> C:\scripts\scripts_test.txt
> M> I can get it to loop through and rename, but can't find a way to
> M> return the folder name to append to the existing name?
> M> M> Any advice is appreciated. Thanks
> M> M> "Jacques" wrote:
> M>
Quote:
Quote:

>>> Shay
>>>
>>> That does it! Many thanks.
>>>
>>> Jacques
>>>
>
>
My System SpecsSystem Spec