Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 批次:“;usebackq";目前还没有预料到_Windows_Batch File_Cmd - Fatal编程技术网

Windows 批次:“;usebackq";目前还没有预料到

Windows 批次:“;usebackq";目前还没有预料到,windows,batch-file,cmd,Windows,Batch File,Cmd,我有以下代码: setlocal enableextensions for "usebackq" %%i in (`dir /b`) do echo * %%i endlocal 我想做的很简单:用*前缀打印当前目录的内容。大概是这样的: 但是,在执行时,它说: 此时不应出现“usebackq” 我对for语句的批处理是新手。有人能帮忙吗?在这里使用,您不需要在您的选项上使用引号*,因为其中没有空格: setlocal enableextensions FOR /F usebackq %%i

我有以下代码:

setlocal enableextensions
for "usebackq" %%i in (`dir /b`) do echo * %%i
endlocal
我想做的很简单:用
*
前缀打印当前目录的内容。大概是这样的:

但是,在执行时,它说:

此时不应出现“usebackq”

我对for语句的批处理是新手。有人能帮忙吗?

在这里使用,您不需要在您的选项上使用引号*,因为其中没有空格:

setlocal enableextensions
FOR /F usebackq %%i IN (`DIR /B`) DO ECHO * %%i
endlocal

*保留引号不会造成任何伤害,尽管我看到您的示例只显示目录条目,没有文件,所以这样可能更好

for /f "delims=" %%i in ('dir /b ') do echo * %%i

如果使用单引号,您不需要使用
“usebackq”

使用
作为/F“usebackq”…
不要编辑答案来标记它已解决。只需单击已接受的标记即可阅读for命令的帮助。如果在FOR命令中使用
/D
选项,则只需在IN子句中使用星号即可。您的代码和您接受的答案将枚举文件和文件夹。@squash我想同时枚举文件和文件夹,但该示例文件夹中没有任何文件。为什么要使用引号?在大多数情况下,您希望在选项周围加引号,但它仍然有效,这是唯一可以安全地省略引号的情况。即使是像
tokens=1
这样的简单选项也需要引号或其他转义。您应该始终使用quoes作为选项,只有在极少数情况下,使用引号作为分隔符,您不能使用周围的引号。我不是说您应该省略-我只是说这里不需要quoes,而不是quoes。我不是在谈论其他用例。你的观点是完全正确的-我不反对。要添加到jebs注释中,需要提到的是,如果有一个带有空格的dir/文件,则只显示第一个标记。您需要
“tokens=*”
“delims=“
来获取整个条目。我想同时枚举文件和文件夹,但该示例文件夹中没有任何文件。那么@Macro Man的批处理就可以了,只要您的名称不带空格。我改变了我上面的版本
for /f "delims=" %%i in ('dir /b ') do echo * %%i