2017-07-10 92 views
0

我正在編寫一個批處理文件來爲項目設置環境,我需要直接在C:驅動器下創建一個新目錄。這是我寫的。首先,我檢查文件是否以Admin身份執行,然後檢查文件是否已經存在,如果不存在,請創建並轉至該文件。然後我做其他事情。無法在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的幫助下,我修復了我的批處理文件。這裏是固定版本:

: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

我修正了幾件事情,我現在使用ROBOCOPY而不是XCOPY。複製命令有效(我犯了一個錯誤 - >「\ C:」而不是「C:」)。我添加了一個命令重定向到C:(cd C:\)。現在一切正常! – Narkael

相關問題