Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 什么';我的批处理代码有什么问题?_Batch File - Fatal编程技术网

Batch file 什么';我的批处理代码有什么问题?

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>

我正在尝试为我的基于文本的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>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
请将您的问题标题更改为更具体的内容!当前标题无法帮助其他用户搜索类似问题的解决方案。。。