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块中的数字。我能够使用bymkdir“\\?\D:\”创建目录。
。但是,资源管理器或cmd都无法访问该文件夹
在Windows资源管理器中,输入文件夹始终显示父文件夹的内容,尽管它实际上已输入子文件夹,因此您不能对该内容执行任何操作,并且资源管理器的标题栏将变为空白,因为它显示文件夹名。在cmdcd
中,除非您在中使用技巧,否则将保留在父文件夹中。您可能需要删除或重命名它
遗憾的是,我还没有找到重命名文件夹的方法。但是,使用相同的路径很容易将其删除
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:\ "
我能够用bymkdir“\\?\D:\”
创建目录。但是,资源管理器或cmd都无法访问该文件夹
在Windows资源管理器中,输入文件夹始终显示父文件夹的内容,尽管它实际上已输入子文件夹,因此您不能对该内容执行任何操作,并且资源管理器的标题栏将变为空白,因为它显示文件夹名。在cmdcd
中,除非您在中使用技巧,否则将保留在父文件夹中。您可能需要删除或重命名它
遗憾的是,我还没有找到重命名文件夹的方法。但是,使用相同的路径很容易将其删除
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
的文件夹!虽然这很有趣,但最重要的是什么