2017-10-09 86 views
0

我是新的Windows批處理腳本,我有一個簡單的程序,它創建一個文件夾,如果不存在,並將文件從另一個目錄移動到文件夾。批處理文件不能運行時,雙擊它,但完美運行在命令提示符

當在命令窗口上執行命令行時,代碼完美工作,但在雙擊.bat文件時不起作用。需要你的幫助。

bat文件的腳本:

@echo off 
if not exist "D:\KUMAR_398519667_9262017" 
mkdir D:\KUMAR_398519667_9262017 
move D:\Siebel\15.0.0.0.0\ses\siebsrvr\TEMP\10488_1540_0_4D44EED2-8EEE-11E7-B1F0-5056B24CF000.docx D:\KUMAR_398519667_9262017 
+0

'如果不存在「D:\ KUMAR_398519667_9262017」'無效。如果 –

回答

0

爲如果是IF [NOT] EXIST filename command其中command是命令或命令的組的語法。整個事情必須在一行

如果你想的目錄和文件移到它,如果不存在,然後將命令成塊

@echo off 
if not exist "D:\KUMAR_398519667_9262017" (
    mkdir D:\KUMAR_398519667_9262017 
    move D:\Siebel\15.0.0.0.0\ses\siebsrvr\TEMP\10488_1540_0_4D44EED2-8EEE-11E7-B1F0-5056B24CF000.docx D:\KUMAR_398519667_9262017 
) 

如果你只是想當它不存在,則以下的目錄是足夠

if not exist "D:\KUMAR_398519667_9262017" mkdir D:\KUMAR_398519667_9262017 
move D:\Siebel\15.0.0.0.0\ses\siebsrvr\TEMP\10488_1540_0_4D44EED2-8EEE-11E7-B1F0-5056B24CF000.docx D:\KUMAR_398519667_9262017 
+0

OOh,你需要一個命令 - 小心!如果目標目錄不存在,則第一個代碼段將移動文件**僅當... – Magoo

+0

謝謝@LưuVĩnhPhúc,代碼在更正語法後正常工作。感謝你的幫助。 – Kumar

0

解決方案1:(一般的情況下)

需要被執行的命令應放在在同一行if(因爲你離開你的代碼未格式化,我們只能假設格式)

if not exist "D:\KUMAR_398519667_9262017" mkdir D:\KUMAR_398519667_9262017 

解決方案2:(在這種情況下)

mkdir(或md)命令將創建一個目錄如果該目錄尚不存在,並且如果該目錄已經存在,則會生成一條錯誤消息。

@echo off 
mkdir D:\KUMAR_398519667_9262017 2>nul 
move D:\Siebel\15.0.0.0.0\ses\siebsrvr\TEMP\10488_1540_0_4D44EED2-8EEE-11E7-B1F0-5056B24CF000.docx D:\KUMAR_398519667_9262017 

2>nul禁止顯示錯誤消息。

在一般情況下,這是一個好主意,「引用完整路徑文件名」 - 萬一它們包含空格 - 如果目的地是一個目錄終止move\目的地(並附在「目的地名稱引號「也是)。注意「好主意」 - 不是「絕對需要」。

+0

感謝@Magoo,它是格式問題,更正了代碼以保持行和命令(mkdir)在一行中。謝謝! – Kumar

相關問題