批量文件双击时不运行,但在命令提示符下运行完美

时间:2017-10-09 07:02:04

标签: windows batch-file

我是Windows批处理脚本的新手,我有一个简单的程序,如果不存在则创建一个文件夹,并将文件从另一个目录移动到文件夹中。

当在命令窗口上执行行时,代码工作正常,但是当我双击.bat文件时,代码不起作用。需要你的帮助。

.bat文件脚本:

@echo off
if not exist "D:\KUMAR_398519667_9262017"
mkdir D:\KUMAR_398519667_9262017
move D:\Siebel\15.0.0.0.0\ses\siebsrvr\TEMP\10488_1540_0_4D44EED2-8EEE-11E7-B1F0-5056B24CF000.docx D:\KUMAR_398519667_9262017

2 个答案:

答案 0 :(得分:0)

if的语法是IF [NOT] EXIST filename command,其中@echo off if not exist "D:\KUMAR_398519667_9262017" ( mkdir D:\KUMAR_398519667_9262017 move D:\Siebel\15.0.0.0.0\ses\siebsrvr\TEMP\10488_1540_0_4D44EED2-8EEE-11E7-B1F0-5056B24CF000.docx D:\KUMAR_398519667_9262017 ) 是一个命令或一组命令。整件事必须在一行

如果你想创建目录并将文件移动到它,如果它不存在则将命令放入一个块

if not exist "D:\KUMAR_398519667_9262017" mkdir D:\KUMAR_398519667_9262017
move D:\Siebel\15.0.0.0.0\ses\siebsrvr\TEMP\10488_1540_0_4D44EED2-8EEE-11E7-B1F0-5056B24CF000.docx D:\KUMAR_398519667_9262017

如果您只想在不存在的情况下创建目录,那么以下内容就足够了

MessageBoxTest here

答案 1 :(得分:0)

解决方案1 ​​:(一般情况)

需要执行的命令应与if放在同一行(因为您的代码未格式化,我们只能采用格式)

if not exist "D:\KUMAR_398519667_9262017" mkdir D:\KUMAR_398519667_9262017

解决方案2 :(在这种情况下)

mkdir(或md)命令将创建一个目录(如果该目录尚不存在),并生成错误消息(如果该目录已存在)。

@echo off
mkdir D:\KUMAR_398519667_9262017 2>nul
move D:\Siebel\15.0.0.0.0\ses\siebsrvr\TEMP\10488_1540_0_4D44EED2-8EEE-11E7-B1F0-5056B24CF000.docx D:\KUMAR_398519667_9262017

2>nul会抑制错误消息。

一般来说,“引用文件名的完整路径”是个好主意 - 以防它们包含空格 - 如果目标是目录,则终止move的目的地\并将目的地名称也包含在“引号”中。注意“好主意” - 不是“绝对必要”。