我需要一个对话框内的批处理文件,可以选择一个文件的路径和文件名以及
例如:http://pastebin.com/ag8avdWw然而,这段代码需要。net框架-有没有解决方案不需要像。net框架?
这是一个批处理文件,允许你选择一个文件,并获得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