2014-02-24 166 views
0

我有兩個批處理文件。將參數從一個批處理文件傳遞到另一個批處理文件

  1. 首先從\ YEAR \ MONTH \ DATE格式中提取日期並創建文件夾。

    @echo off setlocal enabledelayedexpansion :: Extract date fields for /f "tokens=1-4 delims=/-. " %%i in ('date /t') do ( set v1=%%i& set v2=%%j& set v3=%%k if "%%i:~0,1%%" gtr "9" (set v1=%%j& set v2=%%k& set v3=%%l) for /f "skip=1 tokens=2-4 delims=(-)" %%m in ('echo.^|date') do ( set %%m=!v1!& set %%n=!v2!& set %%o=!v3! ))</br> :: Final set for language independency set year=%yy%%aa% set month=%mm% set day=%dd% :: Make Dir set root=f:\ ::Create folder of today's date if exist %root% goto L2 goto L3 :L2 if not exist %root%\%year% md %root%\%year% :L3 if exist %root%\%year%\%month% goto L5 :L4 if not exist %root%\%year%\%month% md %root%\%year%\%month% :L5 md %root%\%year%\%month%\%day% :: Detete folder older than '3' days forfiles /p "%root%%year%\%month%" /s /d -3 /c "cmd /c IF @isdir == TRUE rd /S /Q @path" echo. pause

  2. 創建數據庫

    echo off cls echo -- BACKUP DATABASE -- ::set db name set DATABASENAME='db_name' :: set path and format set BACKUPFILENAME='path\%DATABASENAME%.bak' :: set server name set SERVERNAME='server name' echo. ::backup execution sqlcmd -S %SERVERNAME% -Q "BACKUP DATABASE [%DATABASENAME%] TO DISK = N'%BACKUPFILENAME%' WITH INIT , NOUNLOAD , NAME = N'%DATABASENAME% backup', NOSKIP , STATS = 10, NOFORMAT" echo.

現在我想從第一調用第二個批處理文件,並傳遞參數,如根,年,月的備份,日期從第一到第二。 我已經單獨嘗試了兩種代碼,其工作完美。我如何傳遞參數。請幫助

回答

0

如果你調用從第一個第二批,像

call backupDP.cmd 

兩個文件共享相同的環境,因此,都可以看到相同的變量的東西。不需要傳遞任何東西,第二批已經有了所有的數據。

+0

謝謝@MC ND。但第二個文件將明白根,年,月,日是什麼意思 – vrun

+0

@vrun,我知道我不會說任何新的東西,但批處理文件是程序。你的問題和我的答案是關於數據交換。程序員的任務是編寫程序來使用數據或理解它的含義。對不起,我沒有足夠的信息知道它將如何使用。 –

相關問題