批处理程序如何接受多个文件拖入?开启了变量延迟enabledelayedexpansion之后遇到感叹号要怎么处理?

批处理程序如何接受多个文件拖入?如何得到多个拖入文件的路径并一起传到要执行的命令参数中?
@echo off
setlocal enabledelayedexpansion
set str=
for %%i in (%*) do (
set str=!str! %%i
)
echo !str!
pause

批处理中开启了变量延迟enabledelayedexpansion之后遇到感叹号要怎么处理?

这段代码可以显示拖入的文件名,但是文件名中含有感叹号的话显示的时候会被舍弃,是否有高人了解这种情况要怎么处理呢?
【解决】
@echo off
 
set str=
for %%i in (%*) do (
call set str=%%str%% %%%i
)
call echo %%str%%
call start "" "C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" %%str%% /usep "F:\[软件]\[办公学习]\PDF-XChange Viewer Settings.dat"
pause




posted @ 2013-01-08 15:51  guyqian  阅读(636)  评论(0编辑  收藏  举报