Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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 .bat If-Then语句_Batch File_Windows Scripting - Fatal编程技术网

Batch file .bat If-Then语句

Batch file .bat If-Then语句,batch-file,windows-scripting,Batch File,Windows Scripting,我需要帮助为编写批处理脚本 if file newfile.txt exists then del "InDesignData.txt" ren "newfile.txt" "InDesignData.txt" 您可以使用简单的曲线括号(也支持else!) 除此之外: @echo off IF EXIST newfile.txt ( del "InDesignData.txt" ren "newfile.txt" "InDesignData.txt" ) else ( echo Making

我需要帮助为编写批处理脚本

if file newfile.txt exists
then  del "InDesignData.txt"
ren "newfile.txt" "InDesignData.txt"

您可以使用简单的曲线括号(也支持else!)

除此之外:

@echo off
IF EXIST newfile.txt (
del "InDesignData.txt"
ren "newfile.txt" "InDesignData.txt"
) else (
echo Making tea
)

可以这样做的一种方法是使用if语句和标签来表示错误和成功,并使用ECHO来调试它。。。我这里的示例与目录有关,但您肯定可以根据您的文件删除/创建需要进行调整:

    ECHO Cleaning up folders...
    if exist %myDir% goto deleteFolder
    goto createNewDir

    :deleteFolder
    echo Deleting %myDir%
    RMDIR %myDir% /S /Q
    IF ERRORLEVEL 1 GOTO Error


    :createNewDir
    mkdir %myDir%
    IF ERRORLEVEL 1 GOTO Error
    goto Done

    :error
    echo something went wrong
    goto End

   :Done
    echo Success!

   :End
嗯,,
EB

你可以用几种方法来做,最干净的方法是:

在一行上:

if exist newfile.txt del "InDesignData.txt" & ren "newfile.txt" "InDesignData.txt"
在单独的行中:

if exist newfile.txt del "InDesignData.txt"
if exist newfile.txt ren "newfile.txt" "InDesignData.txt"
或使用()

使用括号是对使用GOTO的改进,因为它更干净。(这通常不是我第一次想到的,因为我是在MS-DOS下学习批处理的。)


我想不出使用GOTO语句的理由,除非您使用的是旧版本的Windows。在这种情况下,我只会在第一个if语句中更改(例如,在本例中删除)您正在测试的内容时使用GOTO语句。GOTO语句会使以后阅读脚本变得更加困难。

感谢您的快速响应!很好!你的代码是我所需要的,在单独的行中,我建议使用括号
如果条件(第1行新行第2行)
是的,这是另一种方法。编辑你的代码,在
del
ren
@Mogli前面不应该有
存在。我不知道我在想什么,也不知道我是怎么错过的。有人拒绝了你的编辑,所以我更改了它。我希望+1是可以接受的回报!:)谢谢你,克鲁格。我不知道那些
是怎么存在的
,我们一直被放回去!删除问候语:“提前感谢,\n Joe”,下次不要这样做
if exist newfile.txt del "InDesignData.txt" & ren "newfile.txt" "InDesignData.txt"
if exist newfile.txt del "InDesignData.txt"
if exist newfile.txt ren "newfile.txt" "InDesignData.txt"
if exist newfile.txt (
    del "InDesignData.txt"
    ren "newfile.txt" "InDesignData.txt"
)