2

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

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.

请问谁能解释一下

4

3 回答 3

3

当然 - 我会回答提出的问题。

最初,>somewhere或任何重定向将数据发送到指定的目的地。

随着对 NT 版本的更改,这得到了扩展。直接在重定向器前面的数字表示logical file number0=STDIN(标准输入)1=STDOUT(标准输出)和 2=STDERR(标准错误)。其他未定义。这可能会导致要输出的数据(通常)以数字结尾的问题,因此>filename echo ...语法

因此,为了向后兼容, (eg)>nul仍然像往常一样被处理,但它ECHO以它的显式形式被编辑1>nul- 发送 STDOUTnul来区分它2>somewhere_else

于 2013-07-04T16:10:26.630 回答
2

试试这个:

set /p "MyNewPath=Path: "
>>log.txt echo %MyNewPath% 
于 2013-07-04T15:43:21.800 回答
1

你的SET说法是错误的。:-) 此外,PATH已在环境中分配(Windows PATH,更改它可能会导致在批处理文件中运行其他命令时出现问题。

试试这个:

set /p "Input=Path: " 
echo %Input% >> log.txt
于 2013-07-04T15:46:41.333 回答