3

のバッチスクリプトの作成についてサポートが必要です

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

4 に答える 4

10

単純な湾曲したブラケットを使用できます(他のブラケットもサポートします!)

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

他の場合:

@echo off
IF EXIST newfile.txt (
del "InDesignData.txt"
ren "newfile.txt" "InDesignData.txt"
) else (
echo Making tea
)
于 2010-08-31T17:18:47.840 に答える
8
if not exist newfile.txt goto skip
del "InDesignData.txt"
ren "newfile.txt" "InDesignData.txt"
:skip
于 2010-08-31T17:15:30.100 に答える
4

あなたはそれをいくつかの方法で行うことができます、最もクリーンな方法は次のようになります:

一行で:

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"
)

角かっこを使用すると、コードがはるかにクリーンになるため、GOTOを使用するよりも改善されます。(MS-DOSでBATCHを学んだので、通常、最初に考えることではありません。)

古いバージョンのWindowsを使用していない限り、GOTOステートメントを使用する理由は考えられません。その場合、最初のIFステートメントでテスト対象(この場合はnewfile.txtが存在する場合)が変更された(この場合は削除された)場合にのみ、GOTOステートメントを使用します。GOTOステートメントは、後でスクリプトを読むのを難しくする傾向があります。

于 2012-07-17T04:16:39.817 に答える
0

これを行う1つの方法は、エラーと成功の両方の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

HTH、EB

于 2010-08-31T17:33:47.967 に答える