在批处理文件中使用“ set / p myvariable = <myfile.txt”

用户名

我正在尝试将文本文件(包含一行文本)的内容设置为变量。为此,我使用了“ set / p myvariable =

SetLocal EnableExtensions EnableDelayedExpansion

Set RegExist=No
Set RegUnins=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Reg Query "%RegUnins%\{########-####-####-####-############}"
If "%errorlevel%"=="0" Set RegExist=Yes

If "%regexist%"=="Yes" (
    Reg Query "%RegUnins%\{########-####-####-####-############}" /V "DisplayName" >"%temp%\appnam1.txt"
    Find /I "This is the value for 'DisplayName'" "%temp%\appnam1.txt" >"%temp%\appnam2.txt"
    More +2 "%temp%\appnam2.txt" >"%temp%\appnam3.txt"
    Set /P _appnam=<"%temp%\appnam3.txt"
    Set appnam=%_appnam:~24,53%
    If "%appnam%"=="This is the value for 'DisplayName'" (
        Echo   - Current version installed: Performing reinstall...
        Start "Reinstall" /B /High /Wait "\\server\installs\reinstall.exe"
    ) Else (
        Echo   - Previous version installed: Performing upgrade...
        Start "Upgrade" /B /High /Wait "\\server\installs\upgrade.exe"
    )
) Else (
    Echo   - Existing version not found: Performing new install...
    Start "Install" /B /High /Wait "\\server\installs\new.install.exe"
)

但是,即使“%temp%\ appnam3.txt”文件包含正确的文本,当我在代码中的这些点检查变量“%_appnam%”和“%appnam%”时,它们还是空白的。因此,如果计算机确实具有初始注册表项,它将始终执行升级过程,而不是重新安装过程。有什么建议么?我不明白为什么“ set / p”行不起作用。提前致谢。

mihai_mandis

请使用延迟扩展。我尝试在下面复制您的案例。似乎变量设置被延迟了,如果您尝试多次运行脚本,则将设置这些值。

@echo off
setlocal enableDelayedExpansion
set regexist=Yes

If "%regexist%"=="Yes" (
    Set /P _appnam=<"C:\result.csv"
    echo !_appnam!
    Set appnam=!_appnam:~24,53!
    echo !appnam!
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用set / p使批处理文件读取并响应文本输入

来自分类Dev

使用批处理文件在.txt文件中搜索双字

来自分类Dev

批处理文件以使用.txt列表

来自分类Dev

如何在批处理文件中使用set和if语句

来自分类Dev

如何在批处理文件中使用set和if语句

来自分类Dev

批处理文件写入txt

来自分类Dev

.txt 与 Windows 激活(批处理文件)

来自分类Dev

如何在Windows7中使用批处理文件将.txt连接到.bin文件

来自分类Dev

批处理文件-无法将文本从Java打印到.txt。通过使用批处理编程

来自分类Dev

使用批处理文件+ Powershell脚本的Set-ExecutionPolicy

来自分类Dev

data / data / package / files / myfile.txt未复制到apk文件

来自分类Dev

批处理文件SET变量问题

来自分类Dev

使用特定文件夹中的批处理文件创建txt文件

来自分类Dev

为什么在批处理脚本中使用“ set / p”方法读取文本文件的第一行在“ for”循环的主体中不起作用?

来自分类Dev

在txt文件中循环并使用批处理文件列出内容

来自分类Dev

使用批处理文件从 txt 文件中读取特定值

来自分类Dev

批处理文件:使用批处理文件读取多个.txt文件并为每个文件分配一个值

来自分类Dev

批处理命令如何列出set / p

来自分类Dev

SET / p If语句内(批处理)

来自分类Dev

批处理命令如何列出set / p

来自分类Dev

Delphi Tpath.Combine('c:','myfile.txt')省略了DirSeperator

来自分类Dev

grep -cE ">" myfile.txt 有什么作用?

来自分类Dev

在C ++中使用“ set / p”

来自分类Dev

简单SET在批处理文件中不起作用

来自分类Dev

如何使用批处理文件自动查找和更改.sav文件(以.txt格式打开)中的几行文本?

来自分类Dev

如何创建多个具有递增编号的txt文件并使用批处理文件(.bat)写入它们

来自分类Dev

Python函数:使用批处理文件将.txt文件中的参数传递给python函数并执行函数

来自分类Dev

批处理文件-如何读取一个文件夹中的多个.txt文件?

来自分类Dev

批处理文件在特定文件夹中创建多行txt文件

Related 相关文章

  1. 1

    如何使用set / p使批处理文件读取并响应文本输入

  2. 2

    使用批处理文件在.txt文件中搜索双字

  3. 3

    批处理文件以使用.txt列表

  4. 4

    如何在批处理文件中使用set和if语句

  5. 5

    如何在批处理文件中使用set和if语句

  6. 6

    批处理文件写入txt

  7. 7

    .txt 与 Windows 激活(批处理文件)

  8. 8

    如何在Windows7中使用批处理文件将.txt连接到.bin文件

  9. 9

    批处理文件-无法将文本从Java打印到.txt。通过使用批处理编程

  10. 10

    使用批处理文件+ Powershell脚本的Set-ExecutionPolicy

  11. 11

    data / data / package / files / myfile.txt未复制到apk文件

  12. 12

    批处理文件SET变量问题

  13. 13

    使用特定文件夹中的批处理文件创建txt文件

  14. 14

    为什么在批处理脚本中使用“ set / p”方法读取文本文件的第一行在“ for”循环的主体中不起作用?

  15. 15

    在txt文件中循环并使用批处理文件列出内容

  16. 16

    使用批处理文件从 txt 文件中读取特定值

  17. 17

    批处理文件:使用批处理文件读取多个.txt文件并为每个文件分配一个值

  18. 18

    批处理命令如何列出set / p

  19. 19

    SET / p If语句内(批处理)

  20. 20

    批处理命令如何列出set / p

  21. 21

    Delphi Tpath.Combine('c:','myfile.txt')省略了DirSeperator

  22. 22

    grep -cE ">" myfile.txt 有什么作用?

  23. 23

    在C ++中使用“ set / p”

  24. 24

    简单SET在批处理文件中不起作用

  25. 25

    如何使用批处理文件自动查找和更改.sav文件(以.txt格式打开)中的几行文本?

  26. 26

    如何创建多个具有递增编号的txt文件并使用批处理文件(.bat)写入它们

  27. 27

    Python函数:使用批处理文件将.txt文件中的参数传递给python函数并执行函数

  28. 28

    批处理文件-如何读取一个文件夹中的多个.txt文件?

  29. 29

    批处理文件在特定文件夹中创建多行txt文件

热门标签

归档