我正在使用批处理文件创建一个信使,我正在尝试存储默认颜色设置。我之前已经存储了其他设置并且没有任何问题,但这次它创建了文件但是将其留空了。
以下是一个例子:
echo Enter the colour you want...
set /p defaultcolor=
if "%defaultcolor%" == "default" @echo 7> "\\user-computer\users\user\documents\codes+stuff\messenger\userdata\%username%\default colour.dll"
if "%defaultcolor%" == "blue" @echo 1> "\\user-computer\users\user\documents\codes+stuff\messenger\userdata\%username%\default colour.dll"
if "%defaultcolor%" == "green" @echo 2> "\\user-computer\users\user\documents\codes+stuff\messenger\userdata\%username%\default colour.dll"
if "%defaultcolor%" == "aqua" @echo 3> "\\user-computer\users\user\documents\codes+stuff\messenger\userdata\%username%\default colour.dll"
如果有人能发现问题,我将非常感激。
答案 0 :(得分:3)
您的号码和重定向符号之间需要一个空格。
@ECHO 2> file
被解释为
将ECHO的STDERR输出重定向到 file
@ECHO 2 > file
被解释为
将 2 写入文件
注意您也可以使用插入符转义符如下
echo Enter the colour you want...
set /p defaultcolor=
if "%defaultcolor%" == "default" @echo ^7> "\\user-computer\users\user\documents\codes+stuff\messenger\userdata\%username%\default colour.dll"
if "%defaultcolor%" == "blue" @echo ^1> "\\user-computer\users\user\documents\codes+stuff\messenger\userdata\%username%\default colour.dll"
if "%defaultcolor%" == "green" @echo ^2> "\\user-computer\users\user\documents\codes+stuff\messenger\userdata\%username%\default colour.dll"
if "%defaultcolor%" == "aqua" @echo ^3> "\\user-computer\users\user\documents\codes+stuff\messenger\userdata\%username%\default colour.dll"
答案 1 :(得分:3)
你可能会稍微缩短它:
Set/P "defaultcolor=Enter the colour you want... "
(
If /I "%defaultcolor%"=="default" Echo 7
If /I "%defaultcolor%"=="blue" Echo 1
If /I "%defaultcolor%"=="green" Echo 2
If /I "%defaultcolor%"=="aqua" Echo 3
)>"\\user-computer\users\user\documents\codes+stuff\messenger\userdata\%username%\default colour.dll"
请注意.dll
个文件通常不包含标准文字。
答案 2 :(得分:2)
其他一些方法:
echo 5 >file.txt
注意:5
之后还有一个空格,也写入文件。
>file.txt echo 5
注意:最强大的解决方案imho。
(echo 5)>file.txt
答案 3 :(得分:1)
删除回声前面的@并在>
之前添加一个空格