Batch file 有没有办法从文本文件中删除空格?(或者从一开始就阻止它)
旁注-不是最好的程序员 我正在制作一个批处理文件脚本,需要从Batch file 有没有办法从文本文件中删除空格?(或者从一开始就阻止它),batch-file,Batch File,旁注-不是最好的程序员 我正在制作一个批处理文件脚本,需要从runfig.conf 我曾尝试使用setlocalenabledelayedexpansion,但似乎无法解决问题。其他谷歌搜索没有结果 这会将变量保存到文件中 echo %fname% > runfig.conf && echo Saving "%fname%" to file... echo %name% >> runfig.conf && echo Saving "%name%"
runfig.conf
我曾尝试使用setlocalenabledelayedexpansion
,但似乎无法解决问题。其他谷歌搜索没有结果
这会将变量保存到文件中
echo %fname% > runfig.conf && echo Saving "%fname%" to file...
echo %name% >> runfig.conf && echo Saving "%name%" to file...
echo %mem% >> runfig.conf && echo Saving "%mem%" to file...
这将读取文件:
< runfig.conf (
set /p fname=
set /p name=
set /p mem=
)
它另存为:
database
server
4
注意末尾的两个空格吗?那些东西把我的计划搞砸了。所以,为了重申我的问题,我该如何删除/防止这些呢?没关系,我在谷歌的第三页找到了答案。 对于那些想知道的人,运行
设置a=%a:=%
其中a
是您的变量。
无论如何,谢谢你 发生这种情况是因为您在
%fname%
和
之间放置了空格。有几种方法可以解决这个问题
第一种方法是简单地删除空间:
echo %fname%>runfig.conf && echo Saving "%fname%" to file...
echo %name%>>runfig.conf && echo Saving "%name%" to file...
echo %mem%>>runfig.conf && echo Saving "%mem%" to file...
但是,如果三个变量中的任何一个以数字结尾,这将产生意外的结果,因此这可能不是您的最佳选择
您还可以将重定向语句移到行的开头,再次删除变量后面的任何空格:
>runfig.conf echo %fname%&& echo Saving "%fname%" to file...
>>runfig.conf echo %name%&& echo Saving "%name%" to file...
>>runfig.conf echo %mem%&& echo Saving "%mem%" to file...
如果你不需要显示的状态(而你不需要,因为重定向不会在脚本中间神奇地失败),你可以把所有东西放在一个代码块中:
(
echo %fname%
echo %name%
echo %mem%
)>runfig.conf
echo Values added to file.
与@SomethingDark的当前答案类似,这将写入配置文件,同时将通知消息重定向到控制台:
@Echo关闭
(Echo=%fname%&&Echo将%fname%保存到文件…>CON
Echo=%name%&&Echo将%name%保存到文件…>CON
Echo=%fname%&&Echo将%mem%保存到文件…>CON)>“runfig.conf”
如您所见,write方法与read方法相同,不同之处在于使用STDOUT而不是STDIN:
(设置/P“fname=”
设置/P“名称=”
设置/P“mem=”)您确实意识到您正在echo
ing%var%
,为每行引入一个尾随空格;不是吗?这将从名为%a%
的变量中删除所有空格,但无法解决您问题中的问题。我不敢相信我忘记了CON
(
echo %fname%
echo %name%
echo %mem%
)>runfig.conf
echo Values added to file.