从文本文件中读取 - 批处理

Tjs*_*Tjs 10 batch-file text-files

我有一个文本文件,a.txt:

你好世界
下午好

我已经写了一个批处理脚本来逐行读取这个文件的内容:
FOR /F "tokens=* delims=" %%x in (a.txt) DO echo %%x

"Hello" "World"由于分隔符(空格)的默认行为,我得到输出.如何重写此行为以获得ouptut"Hello World" "Good Afternoon"

cmd*_*cmd 7

您的代码"for/f"tokens =*delims ="%% x in(a.txt)do echo %% x"将适用于大多数Windows操作系统,除非您修改了命令.

因此,在执行"for/f"命令以跟随字符串之前,您可以改为"cd"进入要读取的目录.例如,如果文件"a.txt"位于C:\ documents和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
Run Code Online (Sandbox Code Playgroud)

但由于这不适用于您的计算机,因此有一种更简单,更有效的方法.使用"type"命令.

@echo off
color a
cls
cd "C:\documents and settings\%USERNAME%\desktop"
type a.txt
echo.
echo.
pause >nul
exit
Run Code Online (Sandbox Code Playgroud)

或者,如果您希望他们选择要在批处理中写入的文件,您可以执行以下操作.

@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
Run Code Online (Sandbox Code Playgroud)