【问题标题】:Powershell : New-Item -name < >Powershell:新项目-名称<>
【发布时间】:2016-05-18 01:34:50
【问题描述】:

场景:在某个路径下创建了一个名为“x”的文件夹

我正在尝试查看以下是否可行:

如果我可以在存在“x”文件夹的同一路径中创建一个名为“x”的文件,而无需在名称参数中指定任何扩展名。

我使用了命令 new-item -name x -path -force

输出:它抛出错误并且无法创建同名文件

然而,如果我指定扩展名“.txt”就可以做到。

我尝试先创建文件,然后再创建文件夹,但又遇到了另一个错误。我使用 force 参数来创建文件夹。没有错误,但是当我检查文件夹的路径时,我看不到它!文件在那里。

我想知道它为什么会失败,是否有解决方法?

先创建文件夹,再创建文件错误

PS C:\Windows\system32> New-Item -name Test1 -path E:\ -ItemType directory 

New-Item -name Test1 -path E:\ -ItemType file -force


        Directory: E:\


    Mode                LastWriteTime     Length Name                                                                                    
    ----                -------------     ------ ----                                                                                    
    d----        16-05-2016     20:20            Test1                                                                                   
    New-Item : Access to the path 'E:\Test1' is denied.
    At line:3 char:1
    + New-Item -name Test1 -path E:\ -ItemType file -force
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : PermissionDenied: (E:\Test1:String) [New-Item], UnauthorizedAccessException
        + FullyQualifiedErrorId : NewItemUnauthorizedAccessError,Microsoft.PowerShell.Commands.NewItemCommand

先创建文件,然后创建文件夹错误

PS C:\Windows\system32> 
New-Item -name Test2 -path E:\ -ItemType file -force


    Directory: E:\


Mode                LastWriteTime     Length Name                                                                                    
----                -------------     ------ ----                                                                                    
-a---        16-05-2016     20:26          0 Test2                                                                                   



PS C:\Windows\system32> New-Item -name Test2 -path E:\ -ItemType directory 
New-Item : An item with the specified name E:\Test2 already exists.
At line:1 char:1
+ New-Item -name Test2 -path E:\ -ItemType directory
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceExists: (E:\Test2:String) [New-Item], IOException
    + FullyQualifiedErrorId : DirectoryExist,Microsoft.PowerShell.Commands.NewItemCommand

【问题讨论】:

    标签: powershell powershell-4.0


    【解决方案1】:

    所有主要文件系统上的文件和文件夹不能共享相同的名称。目录是一种特殊类型的文件,从用户的角度来看,它可以“包含”其他文件。

    【讨论】:

    • 如果我在 name 参数中给出 .txt ,即使有一个文件夹,也可以创建同名文件。但是没有扩展我不能,你知道为什么吗?
    • 我只是想知道为什么我们不能这样做。
    • @Yasha 如果你在文件名中添加“.txt”,那么它就不再一样了,对吧?所有主要文件系统上的文件和文件夹不能共享相同的名称。目录是一种特殊类型的文件,从用户的角度来看,它可以“包含”其他文件。
    • @Yasha btw,这与 PowerShell 无关,但与 NTFS 文件系统有关。
    • 这回答了我的问题!您可以编辑答案以包含此评论
    猜你喜欢
    • 1970-01-01
    • 2018-07-12
    • 2020-03-07
    • 2015-12-30
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    相关资源
    最近更新 更多