【发布时间】:2018-01-21 22:31:15
【问题描述】:
我有以下批处理脚本来打开一个文件选择对话框,我需要从中获取所选文件的名称和路径(我的操作系统是Windows 7 64Bit):
@echo off
setlocal
> "%temp%\fileSelectorDialog.vbs" (
echo DIM objFile
echo Set objShell = CreateObject^( "Shell.Application" ^)
echo Do
echo Set objFile = objShell.BrowseForFolder^(0,"Select a file",^&H4000,""^)
echo on error resume next
echo if objFile.Items.Item.Path = Null OR objFile is nothing OR err.number ^<^> 0 then
echo wscript.echo "ERROR"
echo wscript.quit
echo end if
echo wscript.echo objFile.ParentFolder.ParseName^(objFile.Title^).path
echo if instr^(objFile.items.item.path,"."^)^>0 then
echo wscript.echo objFile.Items.Item.Path
echo wscript.quit
echo end if
echo Msgbox "Please try again to choose a file rather than a folder. " ^& objFile.items.item.path
echo Loop
)
set file=ERROR
for /f "tokens=*" %%a in ('cscript //nologo "%temp%\fileSelectorDialog.vbs"') do set file=%%a
if "%file%"=="ERROR" (
echo There was an error or you cancelled
) ELSE (
echo Path chosen was %file%
)
pause
但是这个 sn-p 只允许在我触发它时打开基本的“计算机”路径作为初始目录,而我需要将我的当前目录(正在执行脚本的目录)作为初始目录当文件选择被触发时。
有人可以通过 Vbscript/Jscript 或 Powershell 帮助我实现这一目标吗?
【问题讨论】:
标签: powershell batch-file file-io vbscript jscript