小编asc*_*pfl的帖子

批处理:如何在解析输出时纠正变量覆盖错误行为

在批处理文件中,我正在检查Baseboard信息,具有以下内容:
BaseboardCheck.cmd

@echo off
setlocal enabledelayedexpansion

for /f "tokens=1,2* delims==" %%a in ('wmic baseboard get /format:list') DO ( 

    if ["%%a"] EQU ["Product"] (
        set PlatformInfo=%%b

        if defined PlatformInfo (
            echo.!PlatformInfo!
            echo.!PlatformInfo!This overwrites the variable
        )
    )

    if ["%%a"] EQU ["Version"] (
        set BaseboardVersion=%%b

        if defined BaseboardVersion (
            echo.!BaseboardVersion!
            echo.!BaseboardVersion!This overwrites the variable
        )
    )   
)
Run Code Online (Sandbox Code Playgroud)

上面的问题:回声时变量会被覆盖而不是附加到变量上.
输出:

DX79SI
This overwrites the variable
AAG28808-600
This overwrites the variable
Run Code Online (Sandbox Code Playgroud)

我想要的是:

DX79SI
DX79SIThis overwrites the variable
AAG28808-600
AAG28808-600This overwrites the variable
Run Code Online (Sandbox Code Playgroud)

我已经花了几个小时(并将继续这样做),但我希望其他人遇到这个问题.我希望遇到这个解析问题的其他人可以在将来避免它.

由此产生的另一个问题是它似乎打破了条件逻辑. …

windows for-loop cmd batch-file wmic

4
推荐指数
2
解决办法
708
查看次数

Windows 批处理:无法使用 ._|_ 回显 ASCII 艺术

我制作了 ASCII 艺术,并试图在 .bat 文件打开时显示它。这是我拥有的(非常基本的)代码。我在网上查过,并没有真正找到任何可以帮助我的东西。有什么建议?

@echo off
echo    __  __    _______    _____     _____     __  __
echo   / /_/ /   / ___  /   /  _  /   /  _  /   / /_/  /
echo  / __  /   / /__/ /   / ____/   /  ___/     \   /
echo /_/ /_/   /_/  /_/   /_/       /_/          /__/
echo    _____          _____     _______  __  __
echo   /  _ /  ____   /  _   /  / ___  / / /_/  /
echo  /  _ /  /___/  /  _/  / …
Run Code Online (Sandbox Code Playgroud)

windows cmd escaping batch-file ascii-art

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

通过UNC路径使用push和popd命令

我正在运行以下批处理文件以在其中运行存储的软件包,但SQL出现UNC Paths are not supported错误。如果我在服务器上运行它,它将正确运行。如果我与其他用户共享,则不会。我不想创建地图驱动器。我一直在阅读有关pushd命令的信息,它可能是一个选择,但不确定其工作方式。有人可以指导我吗?

"\\Server\c$\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\DTExec.exe" /f "\\Sever\c$\Packages\Unapplied and Patient Balances.dtsx"
Run Code Online (Sandbox Code Playgroud)

batch-file

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

MATLAB系统命令“按Enter退出”

我正在尝试编写一个MATLAB脚本,该脚本将调用并运行一个外部程序,然后继续执行其他MATLAB命令。

tic                       %Start stopwatch
system('MyProgram.exe')   %Call and run my program
toc                       %End stopwatch 
Run Code Online (Sandbox Code Playgroud)

但是,此程序“ MyProgram.exe”要求我“按Enter退出”。如何使我的MATLAB脚本通过“ Enter”继续?像如何在执行结束时将“ Enter”作为程序的输入传递?还是一般来说该怎么做?

matlab cmd enter batch-file

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

使用Windows ren命令删除!从文件名

我有一堆文件格式如下

filename-!#.ext
Run Code Online (Sandbox Code Playgroud)

其中#是一个递增的数字,以防止碰撞.我想删除!从文件名中读取为

filename-#.ext
Run Code Online (Sandbox Code Playgroud)

似乎我可以使用ren命令和通配符执行此操作,但很难让它工作.我试过这个:

ren *!?.ext *?.ext
Run Code Online (Sandbox Code Playgroud)

我的想法是*应该匹配文件名 - 部分,然后!,然后是?对于数字.但是,生成的文件名为:

filename-!#.ext.ext
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚原因.

文件名部分可以是动态的,但不包含任何!.有任何想法吗?

cmd batch-file

4
推荐指数
2
解决办法
450
查看次数

git --version 命令返回与实际安装的结果不同的结果

尝试用 homebrew 更新我的 git,我遇到了这个问题:

MBP:GitHub_Tutorial nasdas$ brew install git
Warning: git 2.21.0 is already installed and up-to-date
To reinstall 2.21.0, run `brew reinstall git`
MBP:GitHub_Tutorial nasdas$ git --version
git version 2.17.2 (Apple Git-113)
Run Code Online (Sandbox Code Playgroud)

git terminal homebrew

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

docker中的chain sleep命令是如何组成的?

考虑一个片段:

---
version: '3.4'
services:
  app:
    image: my_image
    command: ["sleep", "60s", "&&", "my_command"]
Run Code Online (Sandbox Code Playgroud)

给我:

sleep: invalid time interval ???my_command??™
Try 'sleep --help' for more information.
Run Code Online (Sandbox Code Playgroud)

怎么了?为什么会这样?

Docker version 19.03.2, build 6a30dfc
Host OS - windows 10
Run Code Online (Sandbox Code Playgroud)

bash wait docker docker-compose

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

在 Windows 上使用 pycharm 在 git bash 中激活 virtualenv

我已经在 Pycharm 中激活git bash而不是command prompt(cmd)。每当我尝试激活名为 的 virtualenv 时venv,我都会遇到两个问题:

  1. 执行后source venv/Scripts/activate,遇到以下错误:
bash: basename: command not found
()
Run Code Online (Sandbox Code Playgroud)

这(我认为)意味着它无法识别source命令。

  1. 跑步./venv/Scripts/activate还有一个问题:
You must source this script: $ source ./venv/Scripts/activate
()
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

pycharm 终端

PS:<exact-directory>/venv/Scripts/activate在 cmd 中也能正常工作。

python bash virtualenv pycharm

4
推荐指数
3
解决办法
1272
查看次数

带有通配符的 Windows REN 命令不起作用

好的,我知道 REN 命令的典型格式,REN source dest并且有几个使用通配符重命名的示例。

例子:

REN *.txt *.doc

这会将您的所有 .txt 文件重命名为 .doc。好吧,这一切都很好,但我有一堆扩展名为 .aaaa.bbbb 的文件,当我使用命令时:

REN *.aaaa.bbbb *.aaaa

我得到了所有扩展名为 .aaaa.aaaa 的文件。现在我无法想出一个 REN 命令来获得 .aaaa 扩展名。

windows cmd batch-file file-rename

3
推荐指数
1
解决办法
2946
查看次数

batch - 回显批处理文件中设置的所有变量

我们假设我有这个代码:

@echo off
set "var=value"
echo %var%
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:如何回显文件中设置的所有变量

我知道你可以这样做:

set
Run Code Online (Sandbox Code Playgroud)

它将显示所有变量.它显示:

ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\foma\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
...
Run Code Online (Sandbox Code Playgroud)

我希望它显示:

var=value
Run Code Online (Sandbox Code Playgroud)

我知道我可以set var显示所有以变量开头的变量var,但在我的情况下,我的所有变量都是从另一个批处理文件"导入"的,因此我不知道变量名称是如何开始的.有任何想法吗?

cmd batch-file environment-variables

3
推荐指数
1
解决办法
2439
查看次数