2016-03-04 80 views
2

我試着使用下面的代碼,但它解析通過每個if循環,而不是根據其文件擴展名。我覺得如果我的陳述不正確。任何人都可以簡化流程嗎?我所需要的是文件應根據其默認文件擴展名程序從文件夾中打開。我也需要將它投影到顯示器上。所以還需要整合我添加的全屏模式代碼。如何檢查文件擴展名,並相應地打開與Windows批處理文件中的默認程序

:loop   
cd c:/Program Files (x86)/Adobe/Acrobat Reader DC/Reader 
set dir1=folder location 
for %%X IN ("%dir1%\*.*") DO ( 
taskkill /f /im "AcroRd32.exe" 
taskkill /f /im "Powerpnt.exe" 
taskkill /f /im "Winword.exe" 
echo %%X 
IF %%X EXIST "%dir1%\*.pdf" ( 
start /max AcroRd32.exe /A "pagemode=FullScreen" "%%X" 
timeout /t 5 
) 
Else IF %%X EXIST "%dir1%\*.pptx" (
"C:\Program Files (x86)\Microsoft Office\root\Office16\Powerpnt.exe" /S "%%X" 
timeout /t 5 
) 
ELSE IF %%X EXIST "%dir1%\*.docx" (
start /max "C:\Program Files (x86)\Microsoft Office\root\Office16\Winword.exe" "%%X" 
timeout /t 5 
) 
) 
goto loop 
+0

您未啓動與文件擴展名關聯的默認程序。如果你想啓動默認程序,只需使用'start'%% X「'。 – IInspectable

+0

@IInspectable它只是使用開始「%% X」不起作用。 – Bhavik

回答

0

變化

IF %%X EXIST "%dir1%\*.pdf" ( 

IF /i "%%~xX"==".pdf" ( 

(並按照針對其它分機反彈球)

即,如果(不區分大小寫)的延伸找到的文件名等於(keystring),然後執行指定的命令。

+0

感謝您的幫助。擴展的比較似乎即將到來。但它仍然不像其他語句那樣工作。它經歷了每個循環。錯誤顯示Else不是內部命令。 – Bhavik

+1

「else」關鍵字必須與之前的')'和其後的'('相同)。 – Magoo

+0

將''%%〜xX''更改爲''%%〜X''。 – lit

相關問題