我正在尝试编写一个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
如何阅读任何文件?
答案 0 :(得分:0)
Squash man的评论回答。需要USEBACKQ选项,因为文件名周围有引号。
@echo off
set "file=%~1"
for /f "usebackq delims=" %%i in ("%file%") do (
echo "%%i"
)
pause