用批处理写入文件

时间:2013-07-04 15:36:12

标签: windows batch-file cmd set

我正在尝试获取批处理文件以获取用户输入并将其放在文件中...到目前为止,这是我的代码。

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.

请任何人解释一下

3 个答案:

答案 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