好吧,我已经花了几个小时试图解决这个问题,但没有任何进展。我创建了一个批处理文件来获取 VHD 的详细信息。
从命令提示符中的命令行运行时,一切都运行良好并产生预期结果。但是,当我使用文件资源管理器中的拖放功能(将 vhd 文件拖放到批处理文件上)时,批处理文件运行时没有错误,但输出(VHD.INFO)为空。
我困惑了。
编辑后仅包含以下行为:
@echo off
cls
setlocal enabledelayedexpansion
set "_PATH.THIS=%~dp0"
echo HELP | diskpart > %_PATH.THIS%OUTPUT.TMP
TYPE %_PATH.THIS%OUTPUT.TMP
PAUSE
为了演示不同的行为,请从命令行运行批处理文件一次(有效),并通过在文件资源管理器中双击来运行批处理文件(所有管道命令均失败)。
答案1
当您从命令行运行批处理文件时,当前目录就是批处理文件的位置。
当您将文件拖放到批处理文件上时,当前目录就是拖放文件的路径。
为了演示这一点,请尝试使用以下批处理文件:
@echo off
cd
pause