移动语法不正确?

时间:2015-11-14 22:24:41

标签: batch-file

我无法弄清楚如何使用"移动"批量命令。这就是我正在做的事情:

@ECHO off
SET name=t
SET steam=C:\Program Files (x86)\Steam\steamapps\common\
SET buffer=C:\Users\Tyler\Desktop\buffer\
SET desktop=C:\Users\Tyler\Desktop\
SET s=%steam%%name%
SET b=%buffer%%name%
SET d=%desktop%%name%
ECHO Moving %s% to %buffer%
MOVE %s% %buffer%
ECHO Moving %d% to %steam%
MOVE %d% %steam%
ECHO Moving %b% to %desktop%
MOVE %b% %desktop%
PAUSE

以下是它的说法:

Moving C:\Program Files (x86)\Steam\steamapps\common\t to C:\Users\Tyler\Desktop\buffer\
The syntax of the command is incorrect.
Moving C:\Users\Tyler\Desktop\t to C:\Program Files (x86)\Steam\steamapps\common\
The syntax of the command is incorrect.
Moving C:\Users\Tyler\Desktop\buffer\t to C:\Users\Tyler\Desktop\
The system cannot find the file specified.
Press any key to continue . . .

我正在尝试移动文件夹" t"在C:\ Program Files(x86)\ Steam \ steamapps \ common \ t到"缓冲区"桌面上的文件夹。然后,我想移动名为" t"的桌面中的文件夹。到上面的蒸汽路径,然后" t"在缓冲区文件夹中" t"在桌面上。

我将使用此功能将游戏的目录从修改版本切换到非修改版本。

1 个答案:

答案 0 :(得分:1)

您的批处理脚本几乎是完美的,您只是忘记引用目录行。您必须这样做,因为您的文件和目录名称通常包含空格,解释器使用这些空格来标记一个参数结束而另一个开始的位置,因此您必须使用双引号来分隔参数。

SET file=moveme.yay
SET from=Z:\home\durden\documents\batch\a with space\
SET to=Z:\home\durden\documents\batch\b with space\
ECHO Moving
move "%from%%file%" "%to%%file%"

如果您需要在Windows上迁移到更复杂的脚本,请尝试使用PowerShell。 (robocopy 1也是移动和复制的一种更新版本,你也可以使用它)

感谢你发布这个问题并带给我这样的烦恼:)