Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.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 &引用;)“在这个时候是出乎意料的”;,在变量批处理中创建文件列表_Windows_Batch File_Cmd - Fatal编程技术网

Windows &引用;)“在这个时候是出乎意料的”;,在变量批处理中创建文件列表

Windows &引用;)“在这个时候是出乎意料的”;,在变量批处理中创建文件列表,windows,batch-file,cmd,Windows,Batch File,Cmd,因此,我试图创建一个批处理文件,它获取deletesrc中的所有文件,并查找其名称是否与deletedest中的任何文件夹匹配。为了实现这一点,我尝试在deletesrc中生成一个文件名列表,该列表存储在deletefiles中(格式为“第一个”“第二个”“第三个文件”)。然后我打算遍历deletedest中的每个文件夹,并检查它是否存在于deletesrc(使用)。到目前为止,我已经做到: setlocal enabledelayedexpansion set "deletesrc=F:\D

因此,我试图创建一个批处理文件,它获取
deletesrc
中的所有文件,并查找其名称是否与
deletedest
中的任何文件夹匹配。为了实现这一点,我尝试在
deletesrc
中生成一个文件名列表,该列表存储在
deletefiles
中(格式为
“第一个”“第二个”“第三个文件”
)。然后我打算遍历
deletedest
中的每个文件夹,并检查它是否存在于
deletesrc
(使用)。到目前为止,我已经做到:

setlocal enabledelayedexpansion

set "deletesrc=F:\Delete Source"
set "deletedest=C:\Users\Spaced Name\Delete\Dest"

set "deletefiles=" ::I think this is useless, but I would prefer it to be here

for /R "%deletesrc%\" %%i in (*) do (
  set "deletefiles=!deletefiles!^"%%i^" "
  ::random comment that is source of error
)

set deletefiles=!deletefiles!:rTrim

echo !deletefiles!
主要的问题是,我一直得到
)在这个时候是出乎意料的

回音测试作为循环中的第一件事,不会改变输出,这意味着循环未运行且首先遇到错误。在循环之前放置一个
回音
,会立即产生输出和错误

如果有任何语法标准或我应该/不应该做的事情不能回答问题,我想知道。

试试这个:

 set deletefiles=!deletefiles! "%%i"
试试这个:

 set deletefiles=!deletefiles! "%%i"
试试这个:

 set deletefiles=!deletefiles! "%%i"
试试这个:

 set deletefiles=!deletefiles! "%%i"

您的问题是在
FOR
循环中使用
作为注释。您不能这样做,因为
实际上是标签指示符,它正在中断
FOR
循环

更改此行:

::random comment that is source of error
为此:

REM random comment that is source of error
更新


正如foxidrive在注释中所述,您可以使用
作为
FOR
中的注释,只要它不是结束
之前的最后一行。

您的问题是您在
FOR
循环中使用
作为注释。您不能这样做,因为
实际上是标签指示符,它正在中断
FOR
循环

更改此行:

::random comment that is source of error
为此:

REM random comment that is source of error
更新


正如foxidrive在注释中所述,您可以使用
作为
FOR
中的注释,只要它不是结束
之前的最后一行。

您的问题是您在
FOR
循环中使用
作为注释。您不能这样做,因为
实际上是标签指示符,它正在中断
FOR
循环

更改此行:

::random comment that is source of error
为此:

REM random comment that is source of error
更新


正如foxidrive在注释中所述,您可以使用
作为
FOR
中的注释,只要它不是结束
之前的最后一行。

您的问题是您在
FOR
循环中使用
作为注释。您不能这样做,因为
实际上是标签指示符,它正在中断
FOR
循环

更改此行:

::random comment that is source of error
为此:

REM random comment that is source of error
更新



正如foxidrive在注释中所述,您可以使用
作为
中的注释,只要它不是关闭
)之前的最后一行。

那么可能您添加了太多路径\文件作为一个变量,长度只能在8KB左右。它在这里起作用。你使用了我的建议吗?好吧,我的错,我在
()
中有评论,但我认为这不会产生错误。你能找出为什么会发生这种情况吗?如果你不能显示准确的代码,你就浪费了人们的时间。这是问问题的罪魁祸首。是的,你是对的,尽管我在stackoverflow的某个地方提到了代码,但我一直在试图删除它。谢谢你为我指出了正确的方向去发现错误,没有你的刺激我是不会发现的。我仍然希望您找出为什么会发生这种情况,如果可能的话,我也会尝试查找。然后,可能您添加了太多的路径\文件,因为一个变量的长度只能约为8 KB。它在这里工作。你使用了我的建议吗?好吧,我的错,我在
()
中有评论,但我认为这不会产生错误。你能找出为什么会发生这种情况吗?如果你不能显示准确的代码,你就浪费了人们的时间。这是问问题的罪魁祸首。是的,你是对的,尽管我在stackoverflow的某个地方提到了代码,但我一直在试图删除它。谢谢你为我指出了正确的方向去发现错误,没有你的刺激我是不会发现的。我仍然希望您找出为什么会发生这种情况,如果可能的话,我也会尝试查找。然后,可能您添加了太多的路径\文件,因为一个变量的长度只能约为8 KB。它在这里工作。你使用了我的建议吗?好吧,我的错,我在
()
中有评论,但我认为这不会产生错误。你能找出为什么会发生这种情况吗?如果你不能显示准确的代码,你就浪费了人们的时间。这是问问题的罪魁祸首。是的,你是对的,尽管我在stackoverflow的某个地方提到了代码,但我一直在试图删除它。谢谢你为我指出了正确的方向去发现错误,没有你的刺激我是不会发现的。我仍然希望您找出为什么会发生这种情况,如果可能的话,我也会尝试查找。然后,可能您添加了太多的路径\文件,因为一个变量的长度只能约为8 KB。它在这里工作。你使用了我的建议吗?好吧,我的错,我在
()
中有评论,但我认为这不会产生错误。你能找出为什么会发生这种情况吗?如果你不能显示准确的代码,你就浪费了人们的时间。这是问问题的罪魁祸首。是的,你是对的,尽管我在stackoverflow的某个地方提到了代码,但我一直在试图删除它。谢谢你为我指出了正确的方向去发现错误,没有你的刺激我是不会发现的。如果可能的话,我仍然希望您找出发生这种情况的原因,我也会尝试查找。您可以使用
,但不能作为结束父项之前的最后一行文本