如何打印每行开头有四个额外空格的文件内容?

问题描述 投票:0回答:1

我有一个名为

test.txt
的文件,其中包含以下内容:

blah
foo
bar

我正在尝试使用 Windows 中的命令提示符编写一个脚本,该脚本将找到名为

test.txt
的文件的路径,然后在每行开头使用四个额外的前导空格打印其内容,以便可以复制输出并使用代码块格式粘贴到 Reddit 帖子中(Reddit 不会将三重反引号格式化为代码块),如下所示:

    blah
    foo
    bar

因此,就我而言,文件的完整路径是

C:\Users\Test User\test.txt
,尽管我不能假设该文件始终位于同一目录中 - 这取决于我安装游戏的位置 - 这就是我使用的原因dir 首先找到文件。

以下命令似乎可以按预期找到文件的所有实例。

for /f "tokens=*" %i in ('dir /s/b test.txt') do @set myfile=%i

之后,发出

echo %myfile%
将按照我的预期打印文件路径:
C:\Users\Test User\test.txt

现在要打印文件的内容,并在每行开头添加四个额外空格,这是我迄今为止尝试过的:

for /f "tokens=* delims= " %i in (%myfile%) do @echo     %i`

结果如下:

The system cannot find the file C:\Users\Test.

我认为文件路径中的空格导致了问题,所以我尝试将

%myfile%
用双引号括起来,如下所示:

for /f "tokens=* delims= " %i in ("%myfile%") do @echo     %i`

但这只是打印文件路径,这也不是我想要的:

    C:\Users\Test User\test.txt

有人可以帮我找出我做错了什么吗?谢谢!

windows batch-file cmd
1个回答
0
投票
for /f "tokens=*" %i in ('dir /s/b test.txt') do @set "myfile=%i"
for /f "tokens=* delims=" %i in ('type "%myfile%"') do @echo     %i
© www.soinside.com 2019 - 2024. All rights reserved.