如何在SubFolders中为无扩展名文件提供扩展名

时间:2018-03-21 06:57:19

标签: powershell file-extension

我有一个包含100个子文件夹的父文件夹。在那些随机文件中没有应用任何扩展名。

我正在尝试使用PS将.txt扩展名应用于任何找不到扩展名的文件。

我尝试过的事情:

Get-ChildItem G:\Those -Filter {!($_.Extension)} -Recurse |
    Rename-Item -NewName {$_.DirectoryName + '.txt'}

Get-ChildItem G:\Those (gci -File -Recurse | ?{!($_.Extension)}) |
    Rename-Item -NewName {$_.Directory.Name + '.txt'}

如果我有文件扩展名但我不知道如何将其转换为仅查找没有扩展名的文件,那么这个有效。

Get-ChildItem G:\Those -Filter *.ext -Recurse |
    Rename-Item -NewName {$_.Directory.Name + '.txt'}

我收到了这个错误:

Rename-Item : Cannot rename the specified target, because it represents a path or
device name.
At line:1 char:63
+ ... {-not $_.Extension} | Rename-Item -NewName {$_.DirectoryName+'.txt'}
+                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     + CategoryInfo          : InvalidArgument: (:) [Rename-Item], PSArgumentException
     + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RenameItemCommand

1 个答案:

答案 0 :(得分:0)

我以迂回的方式想出来,但如果有人可以为此提供单行,我会爱你。

{-not $_.Extension}为我提供了这些文件,但在我$_.DirectoryName+更改为$_.FileName+-File添加-Recurse之前,重命名无效。

这实际上将没有扩展名的文件重命名为“.txt”

名称它们都具有相同的名称我使用我的原始命令将.txt重命名为$_.DirectoryName+'.txt',这就是诀窍。