Batch file 检查文件,然后创建

Batch file 检查文件,然后创建,batch-file,Batch File,我试图制作一个简单的批处理文件,获取用户输入,搜索是否存在,如果不存在,创建文件 我可以用它的硬编码运行测试,但当我添加变量时,它将不会运行 我还让它回显完整路径(变量在末尾),这看起来是正确的 @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 No

我试图制作一个简单的批处理文件,获取用户输入,搜索是否存在,如果不存在,创建文件

我可以用它的硬编码运行测试,但当我添加变量时,它将不会运行

我还让它回显完整路径(变量在末尾),这看起来是正确的

@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

下一个代码段也应该这样做:

@echo off
set /p store="New DayCamp Number: (Example: 0050 or 3015) "
break>>"X:\path\%Store%.txt"
解释:用粗体将下面的语句组合起来:

说:

  • 命令>文件名
    将命令输出重定向到文件
  • 命令>>文件名
    追加到文件中
break/?
表示:

这是为了与DOS系统兼容。它几乎没有效果 在Windows下

然而,使用
set/p
的结果需要一些测试来检查:用户是否只点击了回车键(即回车键),并且可能是一个空字符串。例如,基本检查

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

您的描述显示,如果文件不存在,您希望创建该文件。如果它存在,您正在创建它。基本上覆盖了它。因此,如果您还没有阅读
if
命令的帮助文件,您需要使用
not
选项。@Squashman就是这样。。。犯了愚蠢的错误,并把它倒过来了。作为答案提交,我将标记为已解决。谢谢你的精彩答案!