我有一个批处理文件,用于检查登录的用户是否是特定用户。无论我做什么批处理文件总是在行上崩溃。我已经花了五个小时的时间,而且我已经完全缩小并改进了它们的命令,但它仍然不起作用。我会很感激我如何能得到它的工作有什么建议(也,如果我做显然愚蠢的,让我知道,我是怎样的一个虚设的,当涉及到批处理文件):批处理文件IF ELSE失败
@ECHO OFF
::
SETLOCAL
::
IF "%USERNAME%" EQU "jdoe" (
IMDISK -a -s 32M -m #: -p "/FS:exFAT /Q /Y /V:MERGEABLES"
FOR /F "tokens=2 delims==" %%D IN ('WMIC LOGICALDISK WHERE "size=33538048" GET Name /format:value'^) DO (
COPY "\\WIN2K8R2-F-01\Remote Applications\Batches\Merge PDFs.lnk" "%%D\Merge PDFs.lnk"
GOTO End
^)
) ELSE (
IMDISK -a -s 256M -m #: -p "/FS:exFAT /Q /Y /V:RAMDRIVE"
FOR /F "tokens=2 delims==" %%D IN ('WMIC LOGICALDISK WHERE "size=268304384" GET Name /format:value'^) DO (
COPY "\\WIN2K8R2-F-01\Remote Applications\Batches\Archive Folders.lnk" "%%D\Archive Folders.lnk"
GOTO End
^)
)
::
:End
::
IF EXIST "%SystemDrive%\BGInfo.exe" (
"%SystemDrive%\BGInfo.exe" "%SystemDrive%\BGInfo.bgi" /Timer:0 /AcceptEula /Silent
)
::
ENDLOCAL
UPDATE
所以,我改写了我的版本,老实说,我不认为我的原文和改写相差无几,但重写工作。然而,最终我不能使用这个脚本,因为微软提供了一个问题。问题是普通用户不允许格式化驱动器。从窗口抛出IMDISK
,现在我必须弄乱隐藏的文件夹和快捷方式等RUNAS
没有帮助,我无法让它工作。我很确定我搞砸了,但我没有看到在追求修复方面的重要性。对于任何关心的人,这里是脚本的最终版本。也许这将帮助别人:
@ECHO OFF
::
IF /I "%USERNAME%" EQU "jdoe" (
IMDISK -a -s 32M -m #: -p "/FS:exFAT /Q /Y /V:MERGEABLES"
::
TIMEOUT 4
::
FOR /F "tokens=2 delims==" %%D IN (
'WMIC LOGICALDISK WHERE "size=33423360" GET Name /format:value'
) DO (
PUSHD %%D
::
COPY "\\WIN2K8R2-F-01\Remote Applications\Batches\Merge PDFs.lnk" "Merge PDFs.lnk"
::
POPD
::
GOTO End
)
) ELSE (
IMDISK -a -s 256M -m #: -p "/FS:exFAT /Q /Y /V:RAMDRIVE"
::
TIMEOUT 4
::
FOR /F "tokens=2 delims==" %%D IN (
'WMIC LOGICALDISK WHERE "size=268304384" GET Name /format:value'
) DO (
PUSHD %%D
::
COPY "\\WIN2K8R2-F-01\Remote Applications\Batches\Archive Folders.lnk" "Archive Folders.lnk"
::
POPD
::
GOTO End
)
)
::
:End
::
IF EXIST "%SystemDrive%\BGInfo.exe" (
"%SystemDrive%\BGInfo.exe" "%SystemDrive%\BGInfo.bgi" /Timer:0 /AcceptEula /Silent
)
一件事,我无法弄清楚是怎么到%%D
变量从环路直接传递给COPY
命令。这就是为什么我使用PUSHD
和POPD
,但这只是感觉脏......
你可以尝试把'而不是仅仅'SETLOCAL' SETLOCAL ENABLEDELAYEDEXPANSION'。我不知道它是否会起作用。 – 2013-03-06 05:21:34
我也尝试过,但它没有改变,所以我删除了它。 – Gup3rSuR4c 2013-03-06 16:00:37