读取文本文件作为第一个参数(通过拖放)

时间:2015-10-28 19:02:59

标签: windows batch-file

我正在尝试编写一个Windows批处理文件,它将通过拖放操作从任何文本文件中读取文件集(而不是显式文件名)

显式指定文本文件有效。这将显示 list.txt 的内容:

@echo off
for /f "delims=" %%i in (list.txt) do (
    echo "%%i"
)
pause

但尝试传递 list.txt 作为第一个参数(如通过拖放)失败。这将 file.txt 解析为%% i,而不是像上面那样读取其内容。

@echo off
setlocal EnableDelayedExpansion
set "file=%~1"
for /f "delims=" %%i in ("%file%") do (
    echo "%%i"
)
pause

如何阅读任何文件?

1 个答案:

答案 0 :(得分:0)

Squash man的评论回答。需要USEBACKQ选项,因为文件名周围有引号。

@echo off
set "file=%~1"
for /f "usebackq delims=" %%i in ("%file%") do (
    echo "%%i"
)
pause