2016-12-01 80 views
1

我想做一个简单的批处理文件,获取用户输入,搜索如果它存在,如果没有,创建文件。检查文件,然后创建

我能够运行硬编码测试,但是当我添加变量时,它不会运行。

我也有它回声的完整路径(最后变量),看起来是正确的。

@echo off 
set /p store="New DayCamp Number: (Example: 0050 or 3015) " 
IF EXIST "X:\path\%Store%.txt" (
break>"X:\path\%Store%.txt" 
) ELSE (
REM Do Nothing 
) 
echo "X:\path\%Store%.txt" 
pause 
+2

你的描述说你想创建文件,如果它不存在。如果它存在,您正在创建它。基本上覆盖它。 – Squashman

+0

所以,如果你还没有开始阅读“IF”命令的帮助文件,你需要使用“NOT”选项。 – Squashman

+0

@Squashman这就是它......愚蠢的错误,让它倒退。提交该答案作为答案,我将标记为已解决。 – dwb

回答

2

下面的代码片段也应该这样做:

@echo off 
set /p store="New DayCamp Number: (Example: 0050 or 3015) " 
break>>"X:\path\%Store%.txt" 

说明:放在一起下一个语句粗体

Redirection说:

  • command > filename重定向命令输出到文件
  • command >> filename追加到一个文件

break /?说:

...

这是目前可以兼容DOS系统。它具有无效 在Windows下。

...

然而,使用set /p结果需要一些测试,以检查:如果用户只是点击输入(即返回then the variable will be unchanged,可能是一个空字符串。例如,基本检查

@echo off 
set /p store="New DayCamp Number: (Example: 0050 or 3015) " 
if NOT "%Store%"=="" break>>"X:\path\%Store%.txt" 
+0

你也可以使用'如果定义的商店'... – aschipfl

+0

感谢您的真棒答案! – dwb

相关问题