我有一个名为
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
有人可以帮我找出我做错了什么吗?谢谢!
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