私は次のバッチスクリプトを使用して、選択したファイルの名前とパスを取得する必要があります(私のOSはWindows 7 64Bit
です):バッチスクリプトは現在のディレクトリまたはpowershell/vbscrptコマンドで選択したディレクトリを開きます
@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
しかし、このスニペットでは、現在のディレクトリ(スクリプトが実行されているディレクトリ)を初期ディレクトリにする必要があるのに対して、起動時に開かれる最初のディレクトリとして基本的な "コンピュータ"パスのみが許可されますファイル選択がトリガーされたとき。
誰かがVbscript/JscriptやPowershellでこれを達成するのを手助けできますか?このように、 "" と "17 ^" を置き換える
このスクリプトをクリックして実行すると、コマンドウィンドウが開き、空白のままになり、ファイルダイアログはまったく開きません。 –
現在のディレクトリを表示するようにバッチを変更しました。実行時に表示される内容を確認してください。私はあなたに完全なコピー/ペーストをしたことを伝えます。あなたはローカルドライブで試しましたか? – LotPings
はいローカルドライブで試しましたが、前にも述べたように、GUIファイルダイアログは表示されませんでしたが、初期ディレクトリのパスは正しいですが、GUIが開いていない理由は分かりません。 ? –