2016-05-16 7 views
0

Szenario: ein Ordner mit dem Namen „x“ in einem bestimmten Pfad erstelltPowershell: New-Item -name < >

Ich versuche, um zu sehen, wenn Folgendes möglich:

wenn ich Erstellen Sie eine Datei mit dem Namen "x" im selben Pfad, in dem der Ordner "x" vorhanden ist, ohne eine Erweiterung im Parameter name anzugeben.

verwenden ich den Befehl new-item -name x -path <> -force

Ausgang: sein einen Fehler werfen und ist nicht in der Lage, eine Datei mit dem gleichen Namen

jedoch erstellen , wenn ich die Erweiterung ".txt" angeben kann.

Ich habe versucht, zuerst die Datei und dann den Ordner zu erstellen, bekomme aber einen weiteren Fehler. Ich habe den Force-Parameter verwendet, um den Ordner zu erstellen. Es gibt keinen Fehler, aber wenn ich den Pfad für den Ordner überprüfe, sehe ich es nicht! Die Datei ist aber da.

Ich würde gerne wissen, warum es scheitert und gibt es einen Workaround dafür?

FOLDER zuerst erstellt, und dann Datei Fehler beim Erstellen

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 

Datei zuerst ERSTELLT, DANN Fehler beim Erstellen der FOLDER

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 

Antwort

6

Dateien und Ordner auf allen wichtigen Dateisysteme können den gleichen Namen nicht teilen. Ein Verzeichnis ist ein spezieller Dateityp, der aus der Sicht des Benutzers andere Dateien enthalten kann.

+0

Wenn ich .txt im Parameter name bin in der Lage, mit dem gleichen Namen eine Datei zu erstellen, obwohl es einen Ordner gibt. aber ohne Verlängerung kann ich nicht, weißt du warum? – Yasha

+0

Ich möchte nur wissen, warum wir diese Aktion nicht tun können. – Yasha

+1

@Yasha Wenn Sie ".txt" im Dateinamen hinzufügen, dann ist es nicht mehr dasselbe, oder? Dateien und Ordner in allen wichtigen Dateisystemen können nicht denselben Namen haben. Ein Verzeichnis ist ein spezieller Dateityp, der aus der Sicht des Benutzers andere Dateien enthalten kann. – iTayb

Verwandte Themen