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

Dem*_*nga 1 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
Run Code Online (Sandbox Code Playgroud)

And*_*ers 5

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

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

提示:

  • setlocal在脚本中调用第二行可能是个好主意,因此您的变量不会从批处理文件中泄漏出来.
  • 永远不要set路径,pathext,temp,tmp,windir,SystemRoot,SystemDrive,OS,PROCESSOR_*或NUMBER_OF_*除非你真的知道你在做什么.
  • 如果您在测试时不想关闭控制台窗口,请使用exit /Bgoto :EOF代替exit...