我已经在这几个小时了。我终于放弃了并寻求帮助。我要做的是使用批处理文件来安装我的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
答案 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 /B
或goto :EOF
代替exit
...