Windows 批处理脚本未按预期工作
我试图找到驱动器号并在每个驱动器中创建一个tmp.txt文件 如果我能够创建文件,它应该打印创建的文件,否则不会。低于我所做的,但没有按预期工作Windows 批处理脚本未按预期工作,windows,batch-file,cmd,Windows,Batch File,Cmd,我试图找到驱动器号并在每个驱动器中创建一个tmp.txt文件 如果我能够创建文件,它应该打印创建的文件,否则不会。低于我所做的,但没有按预期工作 del volumes.txt del test.log mountvol | findstr :\ >> volumes.txt for /F "delims= " %%b in (volumes.txt) do ( for /f "usebackq tokens=* delims=" %%a in (`fsutil file cr
del volumes.txt
del test.log
mountvol | findstr :\ >> volumes.txt
for /F "delims= " %%b in (volumes.txt) do (
for /f "usebackq tokens=* delims=" %%a in (`fsutil file createnew %%btmp.txt 1 2^>^&1`) do (
for /f "tokens=4 delims= " %%# in ("%%a") do set "result=%%~#" (
if %result% equ "created" (
echo File creted >> test.log
) else (
echo Failed to create >> test.log
)
)
)
)
它显示即使在驱动器中创建的tmp.txt发生更改,也无法在test.log中为所有驱动器创建
for /f "tokens=4 delims= " %%# in ("%%a") do set "result=%%~#" (
if %result% equ "created" (
到
没有明显的理由将值分配给结果
,即使这样,您也需要调用延迟扩展
并使用!结果代码>而不是%result%
(请参阅有关延迟扩展的项目
此外,就风格而言,虽然%%
似乎有效,但文档仅支持(区分大小写的)字母,而且Microsoft始终有可能“修复”该“问题”。相反,请参阅。
for /f "tokens=4 delims= " %%# in ("%%a") do (
if "%%~#" equ "created" (