File 从批处理文件中选择“文件选择器”对话框,并单独选择文件路径和文件名

File 从批处理文件中选择“文件选择器”对话框,并单独选择文件路径和文件名,file,batch-file,dialog,File,Batch File,Dialog,我需要一个对话框内的批处理文件,可以选择一个文件的路径和文件名以及 例如: 但是,此代码需要.NET framework—是否有一种解决方案不需要.NET之类的框架?这是一个批处理文件,允许您选择一个文件,获取路径和文件名,并使用Powershell获取选择器 编辑:必须更改您的powershell执行策略,以允许您在启动批处理文件时出现文件选择器框之前运行自己编写的脚本 如果要在其他驱动器或文件夹中启动,请更改“c:\” @echo off :loop set "tempfile=%temp

我需要一个对话框内的批处理文件,可以选择一个文件的路径和文件名以及

例如:


但是,此代码需要.NET framework—是否有一种解决方案不需要.NET之类的框架?

这是一个批处理文件,允许您选择一个文件,获取路径
文件名
,并使用Powershell获取选择器

编辑:必须更改您的
powershell执行策略
,以允许您在启动批处理文件时出现文件选择器框之前运行自己编写的脚本

如果要在其他驱动器或文件夹中启动,请更改
“c:\”

@echo off
:loop
set "tempfile=%temp%\file-%random%"
if exist "%tempfile%" goto :loop

call :getfile "c:\"

for /f "delims=" %%a in ('powershell "%tempfile%.ps1" ') do (
   set "filepath=%%~dpa"
   set "filename=%%~nxa"
)
del "%tempfile%.ps1"

echo  path is: "%filepath%"
echo  file is: "%filename%"
pause
goto :EOF

:getfile
(
echo $initialDirectory = "%~1"
echo [System.Reflection.Assembly]::LoadWithPartialName^("System.windows.forms"^) ^| Out-Null
echo $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
echo $OpenFileDialog.initialDirectory = $initialDirectory
echo $OpenFileDialog.filter = "All files (*.*)| *.*"
echo $OpenFileDialog.ShowDialog^(^) ^| Out-Null
echo $OpenFileDialog.filename
) > "%tempfile%.ps1"
goto :EOF

Windows资源管理器是.bat文件的文件选择器。您可以添加该对话框以从您从该对话框中选择的文件中选择文件名和路径吗?您可以进一步解释吗?我想知道何时启动“批处理文件显示”对话框,然后我将选择该文件,该对话框将关闭并向我显示所选文件的文件名(单独显示)文件的路径(单独的)代码不这样做吗?您的计算机上发生了什么?您的代码没有对话框我想编辑您的代码以从对话框中获取信息(仅路径和文件名)