3

単純なバッチファイルでエラーが発生します。このファイルは、ファイル「xyz.4do」を同じディレクトリにコピーし、コピーしたファイルの名前を「abc.4do」に変更し、最後にコピー/名前変更したファイルを別のフォルダに移動することを目的としています。

私のコードは以下のとおりで、エラーが発生する場所についてコメントしています。

@ECHO off
CLS
SETLOCAL

SET  file=C:/users/xyz/desktop/xyz.4do
SET  newName=abc.4do
SET  endDir=C:/users/abc/desktop

REM Error occurs on below line: "The system cannot find the file specified" but the file exists
COPY %file%
REM Error below: "The syntax of the command is incorrect"
REN  %file% %newName%
REM Error occurs on below line: "The system cannot find the file specified"
MOVE %newName% %endDir%

ECHO.
PAUSE
ENDLOCAL
4

2 に答える 2

5

Windowsは、スラッシュ\ではなく、フォルダー区切り文字としてバックスラッシュを使用します/。多くのコマンドはスラッシュで機能しますが、信頼性はありません。

バックスラッシュを使用するには、上部のパスを変更するだけで、すべてが機能するはずです。

今日投稿されたこの他の質問に直接関連しているため、今日質問したのは興味深いことです。Windowsのcmd.exeシェルが、スラッシュ('/'')パス区切り文字を使用したパスで失敗するのはなぜですか?

于 2012-05-10T04:04:07.843 に答える
0

COPYコマンドは1つの引数のコマンドではなく、送信元と宛先の両方が必要です。

ちなみに、1つのコマンドで実行できるはずです。

COPY %file% %endDir%\%newName%

今後のバッチ参照については、次のサイトを試してください:http ://ss64.com/nt/copy.html

于 2012-05-10T04:41:47.117 に答える