Windows 批处理文件:用于参数

Windows 批处理文件:用于参数,windows,batch-file,dos,Windows,Batch File,Dos,我很难理解以下windows批处理文件的作用,有人能解释一下吗: for /f %%i in ("%0") do set curpath=%%~dpi cd /d %curpath% /*Some other code...*/ cd /d %curpath% %0是.bat文件本身的完整路径(如果从另一个目录运行),~dpi是一个修饰符,用于从忽略文件名的路径中提取驱动器和目录,因此此代码段将当前驱动器和目录设置为批处理文件所在的目录 我看不出使用的原因,%~dp0一次性完成了同样的事情。

我很难理解以下windows批处理文件的作用,有人能解释一下吗:

for /f %%i in ("%0") do set curpath=%%~dpi
cd /d %curpath% 
/*Some other code...*/
cd /d %curpath%

%0
是.bat文件本身的完整路径(如果从另一个目录运行),
~dpi
是一个修饰符,用于从忽略文件名的路径中提取驱动器和目录,因此此代码段将当前驱动器和目录设置为批处理文件所在的目录


我看不出使用
的原因,
%~dp0
一次性完成了同样的事情。

%0
是.bat文件本身的完整路径(如果从另一个目录运行),
~dpi
是一个修改器,用于从忽略文件名的路径中提取驱动器和目录,因此,此代码段将当前驱动器和目录设置为批处理文件所在的驱动器和目录


我看不出使用
的原因,
%~dp0
一次完成同样的事情。

不仅%%dp0一次完成同样的事情,而且更正确。如果路径包含任何空格字符,则FOR版本仅查看第一个“单词”。另外,%0不是完整路径,只是在命令行上键入的第一个单词(通常是批处理文件的名称)。它可能包含一个相对路径。dp0不仅可以一次性完成相同的任务,而且更为正确。如果路径包含任何空格字符,则FOR版本仅查看第一个“单词”。另外,%0不是完整路径,只是在命令行上键入的第一个单词(通常是批处理文件的名称)。它可能包含一个相对路径。