我正在尝试获取批处理文件以获取用户输入并将其放在文件中...到目前为止,这是我的代码。
set /p input path=Path:
echo %path% >> log.txt
当我关闭回声时,它会像这样在人脸前面放一个“1”:
echo C:/Example/Path 1>> log.txt
the system can not find the file specified.
请任何人解释一下
答案 0 :(得分:3)
当然 - 我会回答问题。
最初,>somewhere
或任何重定向都会将数据发送到指定的目的地。
随着NT版本的更改,这已经扩展。直接在重定向器之前的数字表示logical file number
,其中0 = STDIN(标准输入)1 = STDOUT(标准输出),2 = STDERR(标准错误。)其他未定义。此可能导致输出数据(通常)以数字结尾的问题,因此>filename echo ...
语法
因此,为了向后兼容,(例如)>nul
仍然按原样处理,但它的ECHO
以其明确形式1>nul
发送 - 将STDOUT发送到{{1}将其与nul
答案 1 :(得分:2)
试试这个:
set /p "MyNewPath=Path: "
>>log.txt echo %MyNewPath%
答案 2 :(得分:1)
您的SET
声明错误。 :-)此外,PATH
已在环境中分配(Windows PATH
,并且更改它可能会导致在批处理文件中运行其他命令时出现问题。
请改为尝试:
set /p "Input=Path: "
echo %Input% >> log.txt