2012-05-10 5 views
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 

答えて

5

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

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

それが直接、今日投稿されました。この他の質問に関連するので、あなたは、今日のあなたの質問をしていることは興味深い:Why does the cmd.exe shell on Windows fail with paths using a forward-slash ('/'') path separator?

+0

スラッシュをバックアップするために変更することはいえ動作しません。それでも、最初のコピーコマンドのファイルが見つかりません。また、バッチファイルはxyz.4doが別のディレクトリで実行されていることに注意してください。 –

0

COPYコマンドは一引数のコマンドは、送信元と宛先の両方を必要としません。

あなたが道で、ただ1つのコマンドでで行うことができる必要があります:

COPY %file% %endDir%\%newName% 

将来のバッチ参考のために、このサイトを試してみてください。http://ss64.com/nt/copy.html

+1

絶対に偽の主張です。 destination引数はオプションです。デフォルトは現在のフォルダです。 MicroSoftのマニュアルでは、引数を囲むように目的地がオプションとして明示されています。 – dbenham

+0

@dbenham Gah!私がバッチを扱って以来、それは長すぎると思います。 – Riking

関連する問題