Windows批处理文件语法

时间:2012-10-26 20:40:54

标签: windows windows-7 batch-file

以下Windows 7批处理文件脚本返回错误:

@ECHO OFF

if exist C:\Program Files (x86)\ E1\P45V goto WIN7

ren /s /c "c:\Program Files\ E1\P45V\P45Login.bmp" "c:\Program Files\E1\P45V\P45Login_OLD.bmp"
copy "\\locattion14\temp\E1\P45Login.bmp" "c:\Program Files\ E1\P45V\P45Login.bmp"

goto END

:WIN7

ren /s /c "c:\Program Files (x86)\ E1\P45V\P45Login.bmp" "c:\Program Files (x86)\E1\P45V\P45Login_OLD.bmp"
copy "\\locattion14\temp\E1\P45Login.bmp" "c:\Program Files (x86)\ E1\P45V\P45Login.bmp"

:END
  

该命令的语法不正确

使用PSTOOL将更改推送到计算机,并在更正语法错误时添加列表。

期望的结果:

如果电脑是XP机器,请将P45login.bmp文件重命名为相同的name_OLD.bmp,然后将文件从loaction 14复制到指定的目录中。

如果PC是Win 7机器,请跳过第一部分,转到第二部分,然后提交相同的更改。

关闭会话。

我移动了引号,添加/减去了开关,但是出现了相同的错误。

当然,这只是一个简单的语法特殊性,我没有抓住。

希望有人看一眼,看看我失踪的明显,并指出我正确的方向,。

感谢您提供任何帮助或建议。

1 个答案:

答案 0 :(得分:3)

您的ren语法错误。 ren不支持任何切换, rename_to 也只需要名称,而不是完整路径。请在此处查看完整详情:http://technet.microsoft.com/en-us/library/cc754276%28v=ws.10%29.aspx

此外:
- if exists需要在路径周围引用 - 您同时使用\ E1\\E1\(有或没有空格)。虽然可以有效,但我会仔细检查这是不是错误 - 如果上述路径实际上不同,则需要使用move(使用完整路径)而不是ren