Batch file 如何将文本附加到文件中;echo.text>&燃气轮机;file.txt";命令

Batch file 如何将文本附加到文件中;echo.text>&燃气轮机;file.txt";命令,batch-file,cmd,Batch File,Cmd,我的批处理脚本中有一个有问题的部分 echo. Some text >> %file% if %errorlevel%==0 echo Success! if not %errorlevel%==0 echo Fail! 如果%file%类似于c:\windows\test.txt,UAC就会抱怨 将显示提示 如何解决缓冲区输出未设置错误级别的问题? 我想我可以使用一些命令来写入文本文件,而不是>。 我可以使用Vista上Windows内置的任何命令,我不能使用其他CMD工具 欢迎

我的批处理脚本中有一个有问题的部分

echo. Some text >> %file%
if %errorlevel%==0 echo Success!
if not %errorlevel%==0 echo Fail!
如果
%file%
类似于
c:\windows\test.txt
,UAC就会抱怨

将显示提示

如何解决缓冲区输出未设置错误级别的问题? 我想我可以使用一些命令来写入文本文件,而不是
>
。 我可以使用Vista上Windows内置的任何命令,我不能使用其他CMD工具

欢迎提出任何其他建议。我只需要添加文本并检查它是否被写入。

@ECHO OFF
SETLOCAL
::制作一个临时文件
:maketemp
设置“tempfile=%temp%\%random%”
如果存在“%tempfile%*”(转到maketemp)其他(echo.something>“%tempfile%a”)
ATTRIB+r q21962157.txt
复制q21962157.txt+%tempfile%a“q21962157.txt>NUL 2>NUL
ECHO ERRORLEVEL为%ERRORLEVEL%
如果错误级别为1(回显错误-在“%tempfile%a”中输出文本),则为ELSE(删除“%tempfile%*”)
属性-r q21962157.txt
后藤:EOF
这里有一个方法。我使用了一个名为
q21962157.txt
的文件进行测试


将第一个
attrib
更改为
+R
以设置只读,将
-R
更改为清除只读。(我只是使用readonly属性来生成拒绝访问的条件)

如果您使用Powershell而不是Batch,您可能希望更好地集成到操作系统中。也许这就是为什么Powershell让您在运行脚本之前设置执行策略。

如果需要更多权限,此操作将中止,否则将继续

@echo off
set "file=c:\windows\test.txt"
copy "%~f0" "%file%.~~~.tmp.~~~" >nul 2>&1
if errorlevel 1 echo no permissions - aborting&goto :EOF
del "%file%.~~~.tmp.~~~"
>>"%file%" echo(Some text

问题的要点表明,你的问题与相同,尽管你的标题使它看起来有些不同。因此,我投票结束你的问题,作为我刚才链接的问题的副本。
@echo off
set "file=c:\windows\test.txt"
copy "%~f0" "%file%.~~~.tmp.~~~" >nul 2>&1
if errorlevel 1 echo no permissions - aborting&goto :EOF
del "%file%.~~~.tmp.~~~"
>>"%file%" echo(Some text