我在将文件中的输入重定向到 set/p 时遇到问题
\n\n这是我的脚本:
\n\n@echo off\necho Reading: {%1}\ntype %1\necho(\necho Starting...\nset VAR=\nset /P VAR=<%1\necho VAR is {%VAR%}...\nRun Code Online (Sandbox Code Playgroud)\n\n我在其他地方读过(/sf/answers/547907041/),我正在使用的语法将起作用。它不是!
\n\n这是我的输出:
\n\nReading: {Fruit.txt}\nPears\nApples\nOranges\nKiwi\nGrapes\nKumquat\n\nStarting...\nVAR is {\xc2\xa0\xe2\x96\xa0P}...\nRun Code Online (Sandbox Code Playgroud)\n\n那么 - 给出了什么?
\n您的文件采用 Unicode (UTF16) 格式,SET /P 不适用于 Unicode。TYPE 命令确实适用于 Unicode,并将输出转换为 ANSI。您可以将 TYPE 的输出重定向到一个新的文本文件,然后您的 SET /P 将起作用。
@echo off
type %1>new.txt
set VAR=
set /P VAR=<new.txt
echo VAR is {%VAR%}...
Run Code Online (Sandbox Code Playgroud)
编辑
要获取第二行而不是第一行:
@echo off
type %1>new.txt
<new.txt (
set /P VAR=
set VAR=
set /P VAR=
)
echo VAR is {%VAR%}...
Run Code Online (Sandbox Code Playgroud)