我正在创建一个批处理文件,我想进入一个仅命名为空白的目录,例如:
"D:/Drive/ "
我尝试使用""
,''
,"/"
和"%20"
,但没有任何效果。
请给我一个解决方案。
非常感谢。
答案 0 :(得分:2)
我能够用mkdir "\\?\D:\ "
的{{3}}创建目录。但是,资源管理器或cmd无法访问该文件夹
在Windows资源管理器中,尽管实际上已经输入了子文件夹,但输入该文件夹始终显示父文件夹的内容,因此您无法对该内容进行任何操作,并且资源管理器的标题栏变为空白,因为它显示了文件夹名称。在cmd中,除非您使用fully-qualified path中的技巧,否则cd
将保留在父文件夹中。您可能需要删除或重命名
不幸的是我还没有找到一种方法来重命名文件夹。但是,使用相同的路径删除它很容易
rmdir "\\?\D:\ "
正常路径也可以,但是您 总是需要最后一个斜杠
mkdir ".\ \"
rmdir ".\ \"
可以 将文件存储在该文件夹中
D:\>>".\ \a.txt" echo abc
D:\>type ".\ \a.txt"
abc
一旦文件夹中有一些内容,资源管理器现在就可以正常输入了。不幸的是,cmd仍然无法更改为它。完全合格的路径可能会有所帮助,不幸的是cmd不支持它。但是 PowerShell确实支持它,并且可以像资源管理器一样输入它
PS D:\> cat '.\ \a.txt'
abc
PS D:\> cd '.\ \'
cd : An object at the specified path D:\ does not exist.
At line:1 char:1
+ cd '.\ \'
+ ~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-Location], PSArgumentException
+ FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.SetLocationCommand
PS D:\> cd '\\?\D:\ \'
PS Microsoft.PowerShell.Core\FileSystem::\\?\D:\ > dir
Directory: \\?\D:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 8/23/2018 3:39 PM 5 a.txt
输入后,很遗憾,您不能使用cd ..
返回,而必须再次使用完全限定的路径
PS Microsoft.PowerShell.Core\FileSystem::\\?\D:\ > cd ..
cd : Cannot find path '\\?\D:' because it does not exist.
At line:1 char:1
+ cd ..
+ ~~~~~
+ CategoryInfo : ObjectNotFound: (\\?\D::String) [Set-Location], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
PS Microsoft.PowerShell.Core\FileSystem::\\?\D:\ > echo `"$(pwd)`"
"Microsoft.PowerShell.Core\FileSystem::\\?\D:\ "
答案 1 :(得分:1)
好吧,这是一种特殊情况,因为Windows不允许文件夹和文件名以空格开头。 正如Paxz在评论中提到的那样,我也无法重现此内容,因此我只是假设您使用了不间断的空间?
在这种情况下,您将使用以下语法:cd " "
,但请放慢。
您不能只按此处的空格,您需要按住ALT键,然后 在按住ALT的同时按0160。 同样不要忘记,您需要使用键盘右侧的Num Block中的数字。
答案 2 :(得分:1)