2017-07-10 19 views
0

プロジェクト用の環境をセットアップするバッチファイルを作成しています。私はC:ドライブの下に直接新しいディレクトリを作成する必要があります。ここに私が書いたものがあります。最初にファイルが管理者として実行されていることを確認してから、ファイルがすでに存在するかどうかを確認します。存在しない場合は作成して作成します。それから私は他のことをする。Cドライブで新しいディレクトリを作成してコピーできません


    :check_Permissions 
    echo Administrative permissons required. Detecting permissions... 

    net session >nul 2>&1 
    if %errorLevel% == 0 (
     echo Success : Administrative permissions confirmed. 
    ) else (
     echo Failure : Current permissions inadequate. 
     echo Please, run this file as administrator. 
    ) 

    pause >nul 

    if not exist "\C:\NewDir" (
    echo NewDir directory will be created under C: drive. 
    mkdir "\C:\NewDir" 
    echo Created NewDir Folder under C: drive. 
) else (
    echo Directory already exists. 
    cd C:\NewDir 
) 
    if not exist "\C:\NewDir" ( 
    echo Directory was not created. 
) 
    :next 
ディレクトリにファイルを管理者として実行されているので、それが権限の不足のためにすることはできません作成されていない理由を私は知らない

...

私もの内容をコピーする必要があります

別のサーバー上のリモート共有ディレクトリを新しく作成したフォルダにコピーします。 XCOPYは機能しません。ここでは、コードがあります:\ディレクトリ:


    XCOPY /s "\\remoteserver\directory\sub-dir\directory-to-copy" "C:\NewDir" 
+1

'\ C:\ NewDir'は、現在のドライブのルートに存在するはずの無効なパスです。既に存在するはずです。また、名前が' C: 'のディレクトリを作成し、次に' NewDir'という名前のサブディレクトリを作成する必要があります。ディレクトリ/ファイル名のコロンは使用できません。すべての '' \ C:\ NewDir ''を' 'C:\ NewDir" 'で置き換えるとバッチファイルが機能するかもしれません。コマンドプロンプトウィンドウ 'md" \ C:\ Newdir "で実行すると、結果が出力されます。ファイル名、ディレクトリ名、またはボリュームラベルの構文が正しくありません。 ' – Mofi

+0

ありがとうございます。 \ C:\ NewDirをC:\ NewDirに変更しました。 – Narkael

答えて

0

BoogieMan2718Mofiの助けを借りて、私はバッチファイルを修正しました。ここでは、固定verisonだ:

:check_Permissions 
    echo Administrative permissons required. Detecting permissions... 

    net session >nul 2>&1 
    if %errorLevel% == 0 (
    echo Success : Administrative permissions confirmed. 
) else (
    echo Failure : Current permissions inadequate. 
    echo Please, run this file as administrator. 
) 

    pause >nul 

cd C:\ 
if %cd% == "C:\" (echo In C:\ drive.) 

if not exist "C:\NewDir" (
    echo NewDir directory will be created under C: drive. 
    mkdir "C:\NewDir" 
    echo Created NewDir Folder under C: drive. 
    echo NewDir will now be copied to your computer. This action may take a few minutes... 
    ROBOCOPY /E /V /Z "\\remoteServer\pathToDirectoryToCopy" "C:\NewDir" 
) else (
    echo Directory already exists. 
) 
if not exist "C:\NewDir" ( 
    echo Directory was not created. 
) 

はあなたの助けをいただき、ありがとうございます。

0

バッチファイルが保存され、Cに走っていることを確認します。

また、C:\ firstの下にテストサブディレクトリを作成できるかどうかを確認してください。これが許可されていない場合は、C:\

のディレクトリ所有権に問題がある可能性があります.XCOPYについては、リモート共有ディレクトリからコピーする権限があることを確認してください。

これを最初にCMDでテストしましたか?

+0

私はいくつかの問題を修正しましたが、XCOPYではなくROBOCOPYを使用します。コピーコマンドが動作します(私は間違いを犯しました - "C:"の代わりに "\ C:")。私はC:にリダイレクトするコマンドを追加しました(cd C:\)。今はすべて正常に動作します! – Narkael

関連する問題