2013-11-27 43 views
0

我試圖創建一個合併2個文件以下邏輯的批處理命令:簡單的批處理命令結合......不能得到它的工作

如果文件A存在和文件b存在,創建文件C和然後刪除文件A和文件B. 如果文件A存在,但不是文件B,則不執行任何操作。 如果文件B存在,但不是文件A,則不執行任何操作。

我有下面的代碼,它工作在大多數情況下,除了當我運行這一點,文件存在,但文件B不存在,它仍然使用文件創建文件C.

免責聲明:我根本不是程序員,對我來說大多是希臘人。我的老闆想讓我創建這個腳本。

我在做什麼錯?

IF EXIST C:\Users\matthew jones\Documents\FileA.txt (
IF EXIST C:\Users\matthew jones\Documents\FileB.txt ( 
COPY FileA.txt+FileB.txt FileC.txt 

DEL FileA.txt 
DEL FileB.txt 

) 
) 

回答

1

您需要引用文件名,因爲它們的路徑包含空格。更改爲包含文件的目錄也更好,或者每次使用時都完全限定它們。最簡單的方法就是轉到目錄。

rem Remember the folder you start in 
pushd 
cd "C:\Users\matthew jones\Documents" 

IF EXIST FileA.txt (
    IF EXIST FileB.txt ( 
    COPY FileA.txt+FileB.txt FileC.txt 

    DEL FileA.txt 
    DEL FileB.txt 

) 
) 
rem Change back to where you were before 
popd 

更困難的方式:

IF EXIST "C:\Users\matthew jones\Documents\FileA.txt" (
    IF EXIST "C:\Users\matthew jones\Documents\FileB.txt" ( 
    COPY "C:\Users\matthew jones\Documents\FileA.txt"+"C:\Users\matthew jones\Documents\FileB.txt" "C:\Users\matthew jones\Documents\FileC.txt" 

    DEL "C:\Users\matthew jones\Documents\FileA.txt" 
    DEL "C:\Users\matthew jones\Documents\FileB.txt" 
) 
) 
+0

非常感謝你......完美! – user3042656

0

這裏的另一種選擇。

pushd "C:\Users\matthew jones\Documents\" 
IF EXIST "FileA.txt" IF EXIST "FileB.txt" ( 
    COPY "FileA.txt"+"FileB.txt" "FileC.txt" 
    DEL "FileA.txt" 
    DEL "FileB.txt" 
) 
popd 
相關問題