for /f "delims=" %%i in ('type E:\ETL\BIN\conn\pwd.ini ^| findstr "programs/"') do ( set "connstr=%%i" )这个命令是什么意思
时间: 2023-09-16 20:14:45 浏览: 127
这是一个Windows批处理脚本中的命令,主要功能是从指定文件中读取包含特定字符串的行,并将其存储在变量中。
具体来说,该命令会打开文件E:\ETL\BIN\conn\pwd.ini,并使用findstr命令查找包含"programs/"字符串的行。然后,使用for循环遍历所有包含该字符串的行,并将其存储在变量connstr中。
需要注意的是,该命令使用了一些特殊字符,如“^”和“%%i”,这些字符在批处理脚本中具有特殊含义。
相关问题
修改代码将读取文件改成读取当前文件目录setlocal enabledelayedexpansion set file="E:\labelprint\1.txt" echo. set replaced=1234 echo 1234>"E:\labelprint\2.txt" echo. set all= set /p all=請輸入條碼: for /f "delims=" %%i in ('type "%file%"') do ( set str=%%i set "str=!str:%replaced%=%all%!" echo !str!>>"E:\labelprint\2.txt" ) COPY "E:\labelprint\2.txt" LPT1 goto :1
这是将代码修改为读取当前文件目录的版本:
setlocal enabledelayedexpansion
set "file=%~dp0\1.txt"
echo.
set "replaced=1234"
echo 1234>"%~dp0\2.txt"
echo.
set "all="
set /p "all=請輸入條碼: "
for /f "usebackq delims=" %%i in ("%file%") do (
set "str=%%i"
set "str=!str:%replaced%=%all%!"
echo !str!>>"%~dp0\2.txt"
)
COPY "%~dp0\2.txt" LPT1
goto :1
for /f "tokens=1-3 delims=: " %a in ("%time%") do set /a hours=%a+1 & set "time=%hours%:%b%:%c",time没有获取到时间中的小时信息
这是一个 Windows 命令行脚本,用于获取当前时间并将其小时加一。但是您说“time没有获取到时间中的小时信息”,我猜想您遇到了问题。
在Windows命令行中,`time`是一个系统变量,表示当前时间。而在上面的脚本中,`time`被定义为一个变量名,这会导致混淆。为了解决这个问题,可以将变量名改为其他名称,比如`mytime`。
修改后的脚本如下所示:
```batch
for /f "tokens=1-3 delims=: " %%a in ("%time%") do set /a hours=%%a+1 & set "mytime=%hours%:%%b:%%c"
echo %mytime%
```
在上面的脚本中,我们将变量`time`改为了`mytime`,并使用`%%a`代替`%a`来避免与系统变量`time`混淆。现在,脚本应该可以正确地获取当前时间并将其小时加一了。
阅读全文