如何正确格式化我的批处理文件

时间:2011-11-09 07:33:39

标签: batch-file

我已经在这几个小时了。我终于放弃了并寻求帮助。我要做的是使用批处理文件来安装我的Truecrypt卷,然后打开Dropbox。完成这两件事后,第二次执行批处理文件将退出Dropbox,然后卸载Truecrypt卷。一切正常,除了退出Dropbox。我不能为我的生活,让它退出Dropbox然后卸下音量。它会跳过taskkill并直接卸下音量。我已经尝试了各种不同的方式应该正在工作,但由于某种原因不是。命令窗口说taskkill不被识别为命令,但这显然是公牛。 = \

@echo off
Set Drive=Z
Set Path="C:\Users\DK\AppData\Roaming\Dropbox.bak"
Set TrueCrypt="C:\Program Files\TrueCrypt\TrueCrypt.exe"

IF EXIST %Drive%: GoTo Dismount
GOTO Mount

:Dismount
taskkill /F /IM "dropbox.exe"
%TrueCrypt% /d %Drive% /f /w /q /s
exit

:Mount
%TrueCrypt% /v /l %Drive% %Path% /q

echo Waiting for volume...
:keepwaiting
ping -n 1 127.0.0.1 > nul
if not exist Z:\ goto keepwaiting
start "Dropbox" "C:\Users\DK\AppData\Roaming\Dropbox\bin\Dropbox.exe"
exit

1 个答案:

答案 0 :(得分:5)

从不使用Path作为您自己的变量!将Set Path="C:\Users\DK\AppData\Roaming\Dropbox.bak"更改为Set DropboxPath =" C:\ Users \ DK \ AppData \ Roaming \ Dropbox.bak"

Taskkill.exe在system32中,但只有在%Path%中列出时,Windows才能找到它。

提示:

  • 最好将setlocal作为脚本中的第二行,这样您的变量就不会泄漏出批处理文件。
  • 从不set路径,pathext,temp,tmp,windir,SystemRoot,SystemDrive,OS,PROCESSOR_ *或NUMBER_OF_ *,除非您真的知道自己在做什么。
  • 如果您在测试时不想关闭控制台窗口,请使用exit /Bgoto :EOF代替exit ...