のバッチスクリプトの作成についてサポートが必要です
if file newfile.txt exists
then del "InDesignData.txt"
ren "newfile.txt" "InDesignData.txt"
のバッチスクリプトの作成についてサポートが必要です
if file newfile.txt exists
then del "InDesignData.txt"
ren "newfile.txt" "InDesignData.txt"
単純な湾曲したブラケットを使用できます(他のブラケットもサポートします!)
@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
)
if not exist newfile.txt goto skip
del "InDesignData.txt"
ren "newfile.txt" "InDesignData.txt"
:skip
あなたはそれをいくつかの方法で行うことができます、最もクリーンな方法は次のようになります:
一行で:
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ステートメントは、後でスクリプトを読むのを難しくする傾向があります。
これを行う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