2010-08-31 27 views
3

J'ai besoin d'aide avec l'écriture d'un script batch pour.bat Si alors Déclaration

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

Remerciements supprimés: "Merci d'avance, \ n Joe", ne le faites pas la prochaine fois –

Répondre

8
if not exist newfile.txt goto skip 
del "InDesignData.txt" 
ren "newfile.txt" "InDesignData.txt" 
:skip 
+0

Merci pour la réponse rapide! Fonctionne bien! – jmituzas

+0

vôtre était tout ce dont j'avais besoin rien de plus – jmituzas

10

Vous pouvez utiliser de simples supports courbes

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

avec les autres (soutien aussi d'autre!):

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

Une façon de faire est d'avoir des instructions if et lab els pour les erreurs et le succès et l'utilisation d'ECHO pour déboguer ... mon exemple ici a à voir avec les répertoires, mais vous pouvez certainement adapter pour vous la suppression du fichier/création besoins:

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 

HTH, EB

4

Vous pouvez le faire de plusieurs façons, les méthodes les plus propres seraient:

Sur une seule ligne:

if exist newfile.txt del "InDesignData.txt" & ren "newfile.txt" "InDesignData.txt" 

Sur des lignes séparées:

if exist newfile.txt del "InDesignData.txt" 
if exist newfile.txt ren "newfile.txt" "InDesignData.txt" 

ou en utilisant()

if exist newfile.txt (
    del "InDesignData.txt" 
    ren "newfile.txt" "InDesignData.txt" 
) 

En utilisant les supports est une amélioration par rapport à l'aide GOTO, car il est un code beaucoup plus propre. (Ce n'est généralement pas ce que je pense d'abord parce que j'ai appris BATCH sous MS-DOS.)

Je ne peux pas penser à une raison pour utiliser l'instruction GOTO, sauf si vous utilisez une ancienne version de Windows. Et dans ce cas, j'utiliserais seulement l'instruction GOTO si ce que vous testez (dans ce cas, si newfile.txt existe) est modifié (disons, supprimé dans ce cas) dans la première instruction IF. L'instruction GOTO rend la lecture du script plus difficile.

+0

_Sur des lignes séparées_ je recommanderais d'utiliser des parenthèses 'if condition (line1 NEWLINE line2)' – jeb

+0

Oui, c'est une autre façon de le faire. –

+1

Edité votre code, il ne devrait pas exister en face de 'del' et' ren' – Mowgli