【发布时间】:2015-09-26 18:45:02
【问题描述】:
我编写了一个非常简单的脚本来将主机的 MAC 地址输出到一个文本文件中。
脚本在第 3 行之后退出 - 'IF DEFINED WRITEOK ('.
@echo off
cls
copy /Y NUL "%CD%\.writable" > NUL 2>&1 && set WRITEOK=1
IF DEFINED WRITEOK (
rem ---- we have write access ----
set DIR=%CD%\interfaces
set FILE=%DIR%\%USERNAME%.txt
IF NOT EXIST "%DIR%" (
MKDIR "%DIR%"
echo DIR '%DIR%' was created
) else (
echo DIR '%DIR%' already exists
) for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| findstr /i "Physical Host"') do (
echo %%i >> "%FILE%"
echo OUTPUT written to '%FILE%'
)
) else (
rem ---- we don't ----
echo DIR '%DIR%' is not writable
)
echo.
echo DONE!
pause
【问题讨论】:
-
1.) 删除
@echo off看看发生了什么? 2.) 请准确描述实际发生的事情以及您期望发生的事情; 3.)for /f命令不能直接跟随);要么在其间添加&,要么将for /f放入下一行; -
..) & for /f.. 工作,现在我有另一个问题。 %CD%, %USERNAME% 可以并且确实包含空格。我不知道如何处理。
标签: windows batch-file scripting