首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用批处理创建.txt文件

使用批处理创建.txt文件
EN

Stack Overflow用户
提问于 2015-12-29 09:27:27
回答 2查看 123关注 0票数 0

我正在尝试创建一个允许您输入用户名和密码的程序,然后创建一个与输入的用户名同名的文件夹,然后在包含密码的文件夹中创建一个.txt文件。由于某些原因,我用于创建.txt文件的代码似乎无法正常工作。该文件完全为空,而不是包含密码。有没有人能解决我的问题?

下面是我的代码:

代码语言:javascript
运行
复制
    set /p newun=New Username: 
    set /p newpw=New Password: 

    if not exist C:\ProgramData\---\%newun% (
        mkdir C:\ProgramData\---\%newun%
        %newpw% > C:\ProgramData\---\%newun%\%newun%pw.txt
    ) else (
        echo %newun%'s directory already exists.
        pause
        goto start
    )
EN

回答 2

Stack Overflow用户

发布于 2015-12-29 09:34:43

您忘记添加echo。您的批处理需要如下所示:

代码语言:javascript
运行
复制
(echo !newpw!)> C:\ProgramData\---\%newun%\%newun%pw.txt

除此之外,你还需要把..。

代码语言:javascript
运行
复制
setlocal EnableDelayedExpansion

..。在你的批次中排在首位。

这以及回声周围的( / )和保存密码的变量非常重要,因为您的密码可能包含一些字符,否则会使其他事情变得混乱(请参阅@dbenham的注释)。如果有人在他的密码中输入了><&和多个其他字符,这将破坏你的脚本,因为如果这成为批处理的一部分,它的行为将会改变。

您可以自行决定是否需要以类似的方式对待newun

您当前的批处理尝试使用您的密码名称调用程序,并获取该程序的输出(即none),并将其写入文件。

您可以尝试此操作,以查看效果:

代码语言:javascript
运行
复制
doesnotexistforsure > output.txt
dir output.txt

这样做,你会得到一个“命令找不到”的消息和一个空文件。同样的事情也会发生在你的批次中。

票数 3
EN

Stack Overflow用户

发布于 2015-12-30 06:29:19

批处理程序读取输出的并将其存储在文本文档中,因此,如果您执行echo Hello output is Hello echo Hello,并且如果您键入< code >D9,输出是Press any key to continue ...,就像在屏幕上而不是在代码中一样。如果您键入passwordPassword%newpw%将等于Password,如果您键入echo: %newpw%,屏幕将显示Password,因此输出为Password。我会使用echo:而不是echo,因为echo:将允许输出在保存到文本文档中时留有空格,并且不会出现任何像刚刚关闭的批处理文件那样的错误。

代码语言:javascript
运行
复制
   echo: %newpw% >> C:\ProgramData\---\%newun%\%newun%pw.txt
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34503183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档