2010-12-12 77 views

回答

660

從您的批處理文件中:

+5

@Јοеу - '%0'可以給當前子程序的名字,但是'%〜dp0'將**總是**給出正在執行的批處理文件的完整路徑。 – dbenham 2013-06-12 11:19:52

+68

實際上,它看起來像%〜dp0給出執行批處理文件所在的*目錄*的完整路徑。%〜dpnx0(相當於%〜f0)給出了批處理文件的完整路徑。有關更多詳細信息,請參閱http://www.robvanderwoude.com/parameters.php。 – deadlydog 2013-07-11 20:08:56

+5

另請參見類似問題的詳細答案:[獲取Windows批處理腳本(.bat)中傳遞的參數列表](http:// stackoverflow。com/q/357315/938111) – olibre 2013-09-23 15:37:23

3

這是您從何處開始批處理文件的目錄。例如。如果你的批次是c:\dir1\dir2而你的確做了cd c:\dir3,那麼運行批處理,當前目錄將是c:\dir3

20

通常是從中啓動批處理文件的目錄,但如果從快捷方式啓動批處理文件,則可以給出不同的起始目錄。另外,當你在cmd中,並且當前目錄是c:\dir3時,仍然可以使用c:\dir1\dir2\batch.bat啓動批處理文件,在這種情況下,當前目錄將爲c:\dir3

2

假設您正在打開當前目錄中的文件。命令將是:

start %cd%\filename.filetype 

我希望我回答你的問題。

5

在一個批處理文件,%CD%是當前目錄中最常用的命令,但你可以設置自己的變量:

set mypath=%cd% 
echo %mypath% (where %mypath% is the current directory that the batch file is sitting in) 

所以說你想打開MYPROG.EXE。如果是在同一個文件夾,你可以使用命令:

start %mypath%\Myprog.exe 

這會從當前文件夾打開MYPROG。

另一種選擇是在C中創建一個名爲AutomatePrograms的目錄。然後,您將文件傳送到該文件夾​​,那麼你可以使用下面的命令來打開它們:

start C:\AutomatePrograms\Myprog1.exe 
start C:\AutomatePrograms\Myprog2.exe 
start C:\AutomatePrograms\Myprog3.exe 
+0

正如在這裏的最佳答案中所指出的那樣,'%cd%'是可變的,所以從Windows資源管理器以admin身份運行批處理文件將給出'C:\ WINDOWS \ system32'這幾乎肯定不是你想要的。 '%〜dp0'更一致。 – icc97 2018-02-27 09:14:07

2

它是從運行執行批處理文件命令的目錄。

如上面的答案中提到,您可以添加下面的命令腳本來驗證:

> set current_dir=%cd% 
> echo %current_dir% 
相關問題