我有一个文本文件 a.txt:
你好世界
下午好
我编写了一个批处理脚本来逐行读取该文件的内容:
FOR /F "tokens=* delims=" %%x in (a.txt) DO echo %%x
我得到的输出为"Hello" "World"
由于分隔符(空格)的默认行为。
我如何覆盖此行为以获得输出"Hello World" "Good Afternoon"
您的代码“for /f”tokens=* delims=“%%x in (a.txt) do echo %%x”将在大多数 Windows 操作系统上运行,除非您修改了命令。
因此,您可以在执行“for /f”命令之前“cd”进入要读取的目录以跟踪字符串。例如,如果文件“a.txt”位于 C:\documents and settings\%USERNAME%\desktop\a.txt 那么您将使用以下内容。
cd "C:\documents and settings\%USERNAME%\desktop"
for /f "tokens=* delims=" %%x in (a.txt) do echo %%x
echo.
echo.
echo.
pause >nul
exit
但由于某种原因,这在您的计算机上不起作用,因此有一种更简单、更有效的方法可以做到这一点。使用“类型”命令。
@echo off
color a
cls
cd "C:\documents and settings\%USERNAME%\desktop"
type a.txt
echo.
echo.
pause >nul
exit
或者,如果您希望他们选择要批量写入的文件,您可以执行以下操作。
@echo off
:A
color a
cls
echo Choose the file that you want to read.
echo.
echo.
tree
echo.
echo.
echo.
set file=
set /p file=File:
cls
echo Reading from %file%
echo.
type %file%
echo.
echo.
echo.
set re=
set /p re=Y/N?:
if %re%==Y goto :A
if %re%==y goto :A
exit
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)