为什么拖放和命令行的batch file执行有所不同?

好的,所以我一直试图找出几个小时没有进展。 我创build了一个batch file来获取VHD的详细信息。

一切运行良好,并在命令行中从命令行运行时产生预期的结果。 但是,当我使用从文件资源pipe理器拖放(拖动一个VHD文件,并拖放到batch file)batch file运行没有错误,但输出(VHD.INFO)是空的。

我很难过

编辑只包括行为:

@echo off cls setlocal enabledelayedexpansion set "_PATH.THIS=%~dp0" echo HELP | diskpart > %_PATH.THIS%OUTPUT.TMP TYPE %_PATH.THIS%OUTPUT.TMP PAUSE 

为了演示不同的行为,请从命令行运行batch file(工作),并通过双击文件资源pipe理器(所有pipe道命令中的故障)运行batch file。

从命令行运行batch file时,当前目录是batch file的位置。

将文件拖放到batch file时,当前目录是拖放文件的path。

为了演示这一点,请使用以下batch file进行尝试:

 @echo off cd pause