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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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
Batch file 复制、重命名然后移动所有的批处理命令失败_Batch File - Fatal编程技术网

Batch file 复制、重命名然后移动所有的批处理命令失败

Batch file 复制、重命名然后移动所有的批处理命令失败,batch-file,Batch File,我的简单批处理文件中有一些错误。该文件用于将文件“xyz.4do”复制到同一目录,然后将复制的文件重命名为“abc.4do”,最后将复制/重命名的文件移动到其他文件夹 下面是我的代码,我已经对错误发生的位置进行了注释: @ECHO off CLS SETLOCAL SET file=C:/users/xyz/desktop/xyz.4do SET newName=abc.4do SET endDir=C:/users/abc/desktop REM Error occurs on be

我的简单批处理文件中有一些错误。该文件用于将文件“xyz.4do”复制到同一目录,然后将复制的文件重命名为“abc.4do”,最后将复制/重命名的文件移动到其他文件夹

下面是我的代码,我已经对错误发生的位置进行了注释:

@ECHO off
CLS
SETLOCAL

SET  file=C:/users/xyz/desktop/xyz.4do
SET  newName=abc.4do
SET  endDir=C:/users/abc/desktop

REM Error occurs on below line: "The system cannot find the file specified" but the file exists
COPY %file%
REM Error below: "The syntax of the command is incorrect"
REN  %file% %newName%
REM Error occurs on below line: "The system cannot find the file specified"
MOVE %newName% %endDir%

ECHO.
PAUSE
ENDLOCAL

Windows使用反斜杠
\
作为文件夹分隔符,而不是正斜杠
/
。许多命令使用正斜杠,但并不可靠

只需将顶部的路径更改为使用反斜杠,一切都会正常工作


有趣的是,您今天问了您的问题,因为它与今天发布的另一个问题直接相关:

复制命令不是一个单参数命令,您需要一个源和一个目标

顺便说一下,您应该只需要一个命令:

COPY %file% %endDir%\%newName%

为了以后的批处理参考,请尝试以下站点:

但更改为反斜杠不起作用。它仍然说找不到第一个复制命令的文件。还应注意,批处理文件在与xyz.4do完全错误声明不同的目录中执行。destination参数是可选的-默认为当前文件夹。MicroSoft文档清楚地将目标显示为可选,参数周围用方括号括起来。@dbenham Gah!我想我已经很久没有和Batch合作了。