相关疑难解决方法(0)

Windows批变量将不会设置

我想我在Window的批处理脚本中遇到了一个错误.

我无法设置扩展if语句中的变量.

这是我的脚本的一个孤立的部分:

@echo off

set success=1
set Version=12345
set Target=Client
set Type=456
set dir=
set zip=

if "%Version%"=="" set success=0
if "%Type%"=="" set success=0

if 1==1 set test=42

if %success%==1 (
    set test2=57005
    if "%Target%"=="Client" (
        set dir=ModName v%Version%
        set zip=ModName v%Version% %Type%.zip
        echo Version: %Version%
        echo    Type: %Type%
        echo.
        echo  Target: %Target%
        echo     dir: %dir%
        echo     zip: %zip%
        echo.
        echo    test: %test%
        echo   test2: %test2%
    )
) else (
    echo Not successful.
)
Run Code Online (Sandbox Code Playgroud)

这是一个全新的cmd实例的输出:

C:\Users\RandomClown\Desktop>test.bat
Version: 12345
   Type: …
Run Code Online (Sandbox Code Playgroud)

if-statement batch-file set

47
推荐指数
1
解决办法
4万
查看次数

在批处理/ f时保留文本文件中的空行

我一直在尝试使用批处理脚本在文本文件中查找和替换字符串.我遇到了这个几乎解决了我的问题的答案,但输出文件中没有保留空行.我也尝试了这个答案,但行开头是行号[] ...... [17]

任何有助于扩展此答案以保留输出文件中的空行的帮助将不胜感激.谢谢

    setlocal enableextensions disabledelayedexpansion

set "search=<Tool>"
set "replace=XYZ"

set "textFile=C:\abc.txt"

for /f "delims=" %%i in ('type "%textFile%" ^| find /v /n "" ^& break ^> "%textFile%"') do (
    set "line=%%i"
    setlocal enabledelayedexpansion
    set "line=!line:%search%=%replace%!"
    >>"%textFile%" echo(!line!
    endlocal
)
Run Code Online (Sandbox Code Playgroud)

输出如下: 在此输入图像描述

batch-file

6
推荐指数
1
解决办法
1885
查看次数

标签 统计

batch-file ×2

if-statement ×1

set ×1