从批处理文件中选择文件选择器对话框,然后单独选择文件路径和文件名

时间:2014-03-21 10:37:28

标签: file batch-file dialog

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

例如:

http://pastebin.com/ag8avdWw

但是这段代码需要.NET框架 - 有没有像.NET这样的框架的解决方案?

1 个答案:

答案 0 :(得分:1)

这是一个允许您选择文件的批处理文件,并获取pathfilename并使用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