首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >双击批处理文件时不运行,但在命令提示符中运行得很好。

双击批处理文件时不运行,但在命令提示符中运行得很好。
EN

Stack Overflow用户
提问于 2017-10-09 07:02:04
回答 2查看 1.8K关注 0票数 0

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

当在命令窗口上执行行时,代码工作得很好,但是当我双击.bat文件时,代码就不能工作了。这件事需要你的帮助。

.bat文件脚本:

代码语言:javascript
运行
复制
@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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-09 07:17:27

if的语法是IF [NOT] EXIST filename command,其中command是一个命令或一组命令。整件事一定是一条龙的

如果您想创建目录并将文件移动到它(如果它不存在),那么将命令放在一个块中

代码语言:javascript
运行
复制
@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
)

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

代码语言:javascript
运行
复制
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
票数 0
EN

Stack Overflow用户

发布于 2017-10-09 07:22:27

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

需要执行的命令应该放在与if相同的行上(因为您没有格式化代码,所以只能采用这种格式)。

代码语言:javascript
运行
复制
if not exist "D:\KUMAR_398519667_9262017" mkdir D:\KUMAR_398519667_9262017

解决方案2:(在本例中)

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

代码语言:javascript
运行
复制
@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将取消错误消息。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46640482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档