我需要一个批处理文件中的对话框,可以选择文件的路径和文件名。
例如:
但是这段代码需要.NET框架 - 有没有像.NET这样的框架的解决方案?
答案 0 :(得分:1)
这是一个允许您选择文件的批处理文件,并获取path
和filename
并使用Powershell获取选择器。
修改:您必须更改powershell execution policy
以允许您在启动批处理文件时出现文件选择框之前运行您编写的脚本。
如果要在其他驱动器或文件夹中启动,请更改"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