[英]batch file doesn't echo into a file
为什么这些行不起作用?
echo POSITION-X: %shopxpos%>>shop%shopid%.yml
echo POSITION-Y: %shopypos%>>shop%shopid%.yml
if "%shopincludedata%" == "y" (echo DATA-VALUE: %shopitemdata%>>shop%shopid%.yml) else if "%shopincludedata%" == "Y" (echo DATA-VALUE: %shopitemdata%>>shop%shopid%.yml) else if "%shopincludedata%" == "yes" (echo DATA-VALUE: %shopitemdata%>>shop%shopid%.yml) else if "%shopincludedata%" == "YES" (echo DATA-VALUE: %shopitemdata%>>shop%shopid%.yml) else if "%shopincludedata%" == "Yes" (echo DATA-VALUE: %shopitemdata%>>shop%shopid%.yml)
他们只是不吐出文件,这是我在以下位置使用的文件: https : //www.dropbox.com/s/xui34kgkdjmee3p/ChestCommands.bat?dl=0
问题是%shopxpos%和%shopypos%的值是一位数字,而一位数字用于标识应重定向的文件句柄。 您希望将数字视为要回显的文字字符串值,但解析器将数字视为文件句柄标识符。
最简单的解决方案是将重定向移动到命令的开头。 它可以出现在任何地方。
我不会检查所有“是”的变体。 相反,我将检查第一个字符是否为Y
,不区分大小写。
>>shop%shopid%.yml echo POSITION-X: %shopxpos%
>>shop%shopid%.yml echo POSITION-Y: %shopypos%
if /i "%shopincludedata:~0,1%" == "y" >>shop%shopid%.yml echo DATA-VALUE: %shopitemdata%
或更妙的是,使用括号并仅重定向一次。
>>shop%shopid%.yml (
echo POSITION-X: %shopxpos%
echo POSITION-Y: %shopypos%
if /i "%shopincludedata:~0,1%" == "y" echo DATA-VALUE: %shopitemdata%
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.