Batch file 什么';我的批处理代码有什么问题?
我正在尝试为我的基于文本的rpg游戏制作一个保存系统(这只是为了好玩,不会有任何结果),但它就是不保存。我已经编写了一个包含此问题的较小代码Batch file 什么';我的批处理代码有什么问题?,batch-file,Batch File,我正在尝试为我的基于文本的rpg游戏制作一个保存系统(这只是为了好玩,不会有任何结果),但它就是不保存。我已经编写了一个包含此问题的较小代码 @echo off color a title TestSave set /a physdam=3 cd C:\Users\%username%\Documents mkdir testsave2>nul echo set /a physdam=%physdam%>save.bat echo Process Complete! pause>
@echo off
color a
title TestSave
set /a physdam=3
cd C:\Users\%username%\Documents
mkdir testsave2>nul
echo set /a physdam=%physdam%>save.bat
echo Process Complete!
pause>nul
当我运行这个批处理程序时得到的输出是:
设置/a physdam=
过程完成
帮助
编辑:它也不会在testsave2文件夹中创建save.bat。如果在save.bat之前添加空间,它会起作用,但我不确定为什么该文件在没有空间的情况下被创建为空白。另外,
>save.bat
将在当前目录中创建文件,该目录是C:\Users\%username%\Documents
。您可以cd testsave2
或指定路径,如>testsave2\save.bat
@echo off
color a
title TestSave
set /a physdam=3
cd %USERPROFILE%\Documents
if not exist testsave2 mkdir testsave2 > nul
echo set /a physdam=%physdam% > testsave2\save.bat
echo Process Complete!
pause > nul
如果要避免文件夹testsave2存在时出现错误消息,可以使用If not exist testsave2
进行检查
要查看所有环境变量(如
%USERNAME%
和%USERPROFILE%
)的值,您可以使用set
命令,后面不做任何操作。虽然您提供了打包的代码,但如果您解释了此代码的更改以及如何解决问题,您的答案会更好,这样,未来的用户就不必使用差异工具和经过教育的猜测来找出解决方案。Ryan是对的。虽然这对“我们这些老批处理人员”来说是显而易见的,但我不认为OP能弄明白为什么你的工作和他的不工作(我真的希望他关心)。你们是绝对正确的,问题是“我的批处理代码怎么了?”毕竟。我将用一些信息更新我的答案。有关更深入的解释,请参阅。OP的代码尝试将流3重定向到文件,但echo
不会将任何内容打印到流3,因此文件保持为空。在echo打开的情况下运行代码,观察到底发生了什么。(如果你不知道重定向是如何工作的,那就很奇怪了)空格的缺点是它是字符串的一部分,这可能会也可能不会有什么不同。有两种常见的技巧可以避免空格:(echo foo3)>file
和>file echo foo3
请将您的问题标题更改为更具体的内容!当前标题无法帮助其他用户搜索类似问题的解决方案。。。