批处理代码不会标记

时间:2015-08-21 20:37:15

标签: batch-file

我写了一个.bat脚本,但脚本的结尾不起作用,它并不是Zukoppieren中的东西

echo Schreibe 
echo [L]
echo um die verbliebenen Dateien im Zukoppieren-Ordner zu loeschen

set /p %STH%=
if /i %STH%==L goto 2


:2
cd %userprofile%\desktop\Zukoppieren
for %%A in (*.*) do del %%A

2 个答案:

答案 0 :(得分:0)

cmd中使用set时,您只需指定变量的名称,而不是%字符:

set /p STH=
if /i %STH%==L goto 2
echo exiting
goto :eof

答案 1 :(得分:0)

如果没有执行goto,则需要退出代码。

这增加了一种不同的方法来删除更安全的文件,并且通过用双引号括起来来满足其中包含空格等的用户名。

包含Mathias R. Jessen已经提到的修复 - 使用set / p命令中的实际变量名。

上面的set命令重置变量 - 因此不会记住同一命令窗口中的任何先前输入。

if命令中的比较也有双引号,因此无效输入不会导致批处理文件出错并中止 - 如果您按enter而不输入任何内容,例如。

echo Schreibe 
echo [L]
echo um die verbliebenen Dateien im Zukoppieren-Ordner zu loeschen

set "sth="
set /p STH=
if /i "%STH%"=="L" goto 2
echo quitting
goto :eof

:2
del "%userprofile%\desktop\Zukoppieren\*.*?"