Windows/Linux映射驱动器:如何创建名称以“开始”开头的目录@&引用;在标志处?

Windows/Linux映射驱动器:如何创建名称以“开始”开头的目录@&引用;在标志处?,linux,windows,nas,Linux,Windows,Nas,上下文:Synology NAS Linux由Windows 7使用 问题:Windows拒绝创建名称以“@”(at sign/at sign)开头的目录 不幸的是,我必须在要在Windows上执行的Python脚本中创建一个名为@eaDir(嗨,Synology Photo Station用户!)的目录 当从“cmd”控制台执行时,以下行引发错误 DOS shell中的mkdir或从Windows资源管理器创建新目录后给出最终目录名“@eaDir”时也会出现相同的错误 有没有人知道如何在Win

上下文:Synology NAS Linux由Windows 7使用

问题:Windows拒绝创建名称以“@”(at sign/at sign)开头的目录

不幸的是,我必须在要在Windows上执行的Python脚本中创建一个名为
@eaDir
(嗨,Synology Photo Station用户!)的目录

当从“cmd”控制台执行时,以下行引发错误

DOS shell中的mkdir或从Windows资源管理器创建新目录后给出最终目录名“@eaDir”时也会出现相同的错误

有没有人知道如何在Windows上执行的Python脚本中创建一个开头带有@at符号的目录


注意:感谢所有帮助确定错误根本原因的贡献者。

这在Windows 7上运行良好:

C:\> python.exe -c "import os; os.mkdir('@test')"

它会引起什么错误?DOS已经很久没有存在了。@在Windows NTFS/FAT中不是特殊字符。在命令提示符下键入
os.mkdir(“@eaDir”)
不会运行python命令。你具体在做什么,怎么做,遇到什么错误?控制台不是cmd.exe;这是一个可以使用控制台的shell,但它不负责控制台。那是conhost.exe。另外,
os.mkdir
也与cmd.exe无关。这是通过调用WinAPI
CreateDirectory
实现的,如上所述,“@”在Windows文件系统中不是保留字符。保留控制字符(序号1-31)以及5个通配符和管道(*?)和|),加上明显的路径分隔符反斜杠和斜杠。@eryksun事实上,我使用cmd.exe shell而不是python shell来执行我的python脚本。使用python shell,同样的指令也可以正常工作。听起来您的NAS拒绝创建目录,这与Windows、python或cmd.exe无关。>python.exe-c导入操作系统;os.mkdir(“@eaDir”)“回溯(最近一次调用):FileNotFoundError:[WinError 2]Le fichier spécifiéest introvable:“@eaDir”抱歉,不知道。这不是权限错误(5),而且它还不存在(183)。您是在网络共享上运行它吗?很好,我是在网络共享上运行它的(linux synology NAS)。该指令在本地目录上下文中运行良好…谢谢。我将查看UNC路径。更改工作目录(如果cwd是指工作目录)并不能解决此问题。Python shell>>>os.chdir(“w://U照片”)>>>os.getcwd()'w:_照片'>>>os.mkdir(@eaDir”)回溯(最近一次调用):文件“”,在os.mkdir(“eaDir”)中的第1行FileNotFoundError:[WinError 2]Le fichier spécifiéest introuvable:“@eaDir”
C:\> python.exe -c "import os; os.mkdir('@test')"