Batch file 如何在命令提示符下使用CD命令更改为仅带有空格的文件夹?

Batch file 如何在命令提示符下使用CD命令更改为仅带有空格的文件夹?,batch-file,cmd,whitespace,Batch File,Cmd,Whitespace,我正在创建一个批处理文件,我想进入一个仅用空格命名的目录,例如: "D:/Drive/ " 我尝试了,,,,,,,,,%20,但都没用 我该怎么做呢?嗯,这是一种特殊情况,因为Windows不允许文件夹和文件名以空格开头 正如Paxz在评论中提到的,我也无法复制这个,所以我假设你使用了一个无中断空间 在这种情况下,您将使用以下语法:cd”“,但请稍候 你不能只按空格键,你需要按住Alt键,然后在按住Alt键的同时按0160键。也不要忘记,您需要使用键盘右侧Num块中的数字。嗯,这是一种特殊情况

我正在创建一个批处理文件,我想进入一个仅用空格命名的目录,例如:

"D:/Drive/ "
我尝试了
%20
,但都没用


我该怎么做呢?

嗯,这是一种特殊情况,因为Windows不允许文件夹和文件名以空格开头

正如Paxz在评论中提到的,我也无法复制这个,所以我假设你使用了一个无中断空间

在这种情况下,您将使用以下语法:
cd”“
,但请稍候


你不能只按空格键,你需要按住Alt键,然后在按住Alt键的同时按0160键。也不要忘记,您需要使用键盘右侧Num块中的数字。

嗯,这是一种特殊情况,因为Windows不允许文件夹和文件名以空格开头

正如Paxz在评论中提到的,我也无法复制这个,所以我假设你使用了一个无中断空间

在这种情况下,您将使用以下语法:
cd”“
,但请稍候


你不能只按空格键,你需要按住Alt键,然后在按住Alt键的同时按0160键。另外,请不要忘记,您需要使用键盘右侧Num块中的数字。

我能够使用by
mkdir“\\?\D:\”创建目录。
。但是,资源管理器或cmd都无法访问该文件夹

在Windows资源管理器中,输入文件夹始终显示父文件夹的内容,尽管它实际上已输入子文件夹,因此您不能对该内容执行任何操作,并且资源管理器的标题栏将变为空白,因为它显示文件夹名。在cmd
cd
中,除非您在中使用技巧,否则将保留在父文件夹中。您可能需要删除或重命名它

遗憾的是,我还没有找到重命名文件夹的方法。但是,使用相同的路径很容易将其删除

rmdir "\\?\D:\ "
正常路径也会起作用,但您总是需要在末尾加一条斜线

可以将文件存储在该文件夹中

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
一旦文件夹资源管理器中有了一些内容,现在就可以正常输入了。不幸的是,cmd仍然无法转换为它。一个完全限定的路径可能会有所帮助,不幸的是cmd不支持它。但是,PowerShell确实支持它,并且可以像Explorer一样进入它

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:\ "

我能够用by
mkdir“\\?\D:\”
创建目录。但是,资源管理器或cmd都无法访问该文件夹

在Windows资源管理器中,输入文件夹始终显示父文件夹的内容,尽管它实际上已输入子文件夹,因此您不能对该内容执行任何操作,并且资源管理器的标题栏将变为空白,因为它显示文件夹名。在cmd
cd
中,除非您在中使用技巧,否则将保留在父文件夹中。您可能需要删除或重命名它

遗憾的是,我还没有找到重命名文件夹的方法。但是,使用相同的路径很容易将其删除

rmdir "\\?\D:\ "
正常路径也会起作用,但您总是需要在末尾加一条斜线

可以将文件存储在该文件夹中

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
一旦文件夹资源管理器中有了一些内容,现在就可以正常输入了。不幸的是,cmd仍然无法转换为它。一个完全限定的路径可能会有所帮助,不幸的是cmd不支持它。但是,PowerShell确实支持它,并且可以像Explorer一样进入它

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:\ "

要输入名为
的目录,您需要使用
cd“\\”
。我不知道你为什么要做两次


请注意,在一般情况下,这是不可能的。但是,如果该文件夹是在Linux上创建的,然后复制过来,Windows会尽力使其工作。

要进入名为
的目录,需要使用
cd“\\”
。我不知道你为什么要做两次


请注意,在一般情况下,这是不可能的。但是,如果该文件夹是在Linux上创建的,然后复制过来,Windows会尽最大努力使其正常工作。

您是如何创建一个只使用一个空格命名的文件夹的?我试图在编辑器和cmd上复制这个文件,windows不允许创建这样一个名为的文件夹。我必须通过内置的Linux子系统生成这个文件夹。到目前为止,我所能理解的是,你可以使用``文件夹中的文件夹和文件进行操作,但你必须使用完整路径,而不是进入文件夹。我的底线是:即使在Linux中,也不要定义名为
space
的文件夹!有趣的是,使用空格字符命名目录的用例是什么?我能想到的唯一的事情就是某种形式的混淆。让事情变得更清楚通常比让事情变得更复杂更好。实际上我并没有创建文件夹,但特洛伊木马程序在我的笔驱动器和办公室中创建了它。我想创建一个“bat”文件来替换后面的文件夹结构,而病毒防护并没有这样做。您是如何创建一个只使用一个空格命名的文件夹的?我试图在编辑器和cmd上复制这个文件,windows不允许创建这样一个名为的文件夹。我必须通过内置的Linux子系统生成这个文件夹。到目前为止,我所能理解的是,你可以使用``文件夹中的文件夹和文件进行操作,但你必须使用完整路径,而不是进入文件夹。我的底线是:即使在Linux中,也不要定义名为
space
的文件夹!虽然这很有趣,但最重要的是什么