这个问题最好用场景来解释,我意识到这两个程序的运行方式不同。
我的Linux硬盘上有一个旧备份,包含一个名为con的文件。如MSDN所述,con是保留的设备名称,不能用于文件:
不要将以下保留的设备名称用于文件名:
CON,PRN,AUX,NUL,COM1,COM2,COM3,COM4,COM5,COM6,COM7,COM8,COM9,LPT1,LPT2,LPT3,LPT4,LPT5,LPT6,LPT7,LPT8和LPT9
所以我在删除文件时遇到了问题,但是当我在超级用户回答的命令中找到正确的名称时,我能够将其删除:
del "\\.\F:\Movies\Con Man\Con.Man.2018.720p.WEBRip.x264-[YTS.AM].mp4"
首先,我尝试通过PowerShell使用给定命令删除该文件。它抛出一个错误,说目录或驱动器不存在。只有C:\ WINDOWS \ System32 \ cmd.exe才能删除该文件。我用管理员权限运行了两个shell。
所以从这一点开始我只想知道:为什么他们的行为不同?PowerShell是否存在某种单独的权限级别,还是在某种特殊的沙箱中运行?
@grawity是的。我引用的命令并不专门用于名为con的文件,但是我将它用于名为con(并且只有con)的文件,并且它通过cmd.exe工作。我认为这是一些自动生成的文件,它恰好出现在我在Linux上的软件开发者时代。我现在不知道它是如何具体出现的。
—
narranoid
con
,是吗?