小编Ger*_*ard的帖子

解释Windows批量换行变量hack的工作原理

有人可以解释这是如何工作的吗?

@echo off
REM Creating a Newline variable (the two blank lines are required!)
set NLM=^


set NL=^^^%NLM%%NLM%^%NLM%%NLM%
REM Example Usage:
echo There should be a newline%NL%inserted here.
Run Code Online (Sandbox Code Playgroud)

发出:

There should be a newline
inserted here.
Run Code Online (Sandbox Code Playgroud)

来自如何在批处理文件中回显换行符?

batch-file

67
推荐指数
2
解决办法
3万
查看次数

测试文件是否为图像文件

我正在使用一些文件IO,想知道是否有方法来检查文件是否是图像?

java io image file

32
推荐指数
5
解决办法
5万
查看次数

如何从使用 Jenkinsfile (groovy) 中的 returnStdout 标志 true 执行的批处理命令的输出中删除命令本身

我正在为我的 .net 项目使用 Jenkins Pipeline。我不想使用默认内部版本号,所以我尝试在 groovy 中使用以下命令设置内部版本号。

def short_hash = bat(script: 'git log --pretty=format:\'%%h\' -n 1', returnStdout: true)
currentBuild.displayName = '0.0.' + "${env.BUILD_NUMBER}" +'.' + short_hash
Run Code Online (Sandbox Code Playgroud)

我观察到的是 short_hash 具有批处理命令的值以及结果。

此处的 jenkins 文档指出“脚本执行批处理脚本。允许多行。使用 returnStdout 标志时,您可能希望用 @ 作为前缀,以免命令本身包含在输出中。”

我尝试使用@,但在执行时出错。任何指针?

jenkins cloudbees jenkins-pipeline

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

启用双击资源管理器中的文件并在 Windows 终端中使用 WSL 应用程序(Neovim、Vim 等)启动/运行它的脚本

我使用 WSL(适用于 Linux 的 Windows 子系统)。我在 WSL 中安装了 Neovim/Vim/etc,并希望能够在资源管理器中打开一个文件,并在 Windows 终端内在 WSL 中安装的 Neovim 中打开它。编写什么脚本来启动它,我正在努力从cmd, 通过 wt.exe转义双引号,然后转入 WSL bash。

为 windows 和 linux 配置两个版本的 Neovim/Vim 可能会很痛苦。而只是在 Windows 和 WSL 中仅使用 WSL 版本。

windows vim batch-file neovim windows-subsystem-for-linux

5
推荐指数
1
解决办法
852
查看次数

''不被识别为内部或外部命令,可操作程序或批处理文件

每当我尝试mycommand.exe从我的Windows cmd.exe终端运行时,我都会收到此错误:

''mycommand.exe'无法识别为内部或外部命令,可运行程序或批处理文件'

然后

我试图跑的时候也经历过类似的错误 C:\Program Files\My-App\Mobile.exe

''C:\ Program'不被识别为内部或外部命令,可操作程序或批处理文件'

cmd batch-file

3
推荐指数
2
解决办法
5万
查看次数

CMD.exe 立即关闭 - AutoRun 注册表项中出现异常行

我注意到我的命令行不再启动,它只是在运行时立即最小化并自行关闭。我怀疑这是由于病毒或至少执行了某种恶意程序造成的。我在注册表中找到了以下代码。它看起来很清晰,但我对批处理/命令行的了解有限。谁能告诉我它有什么作用?

@mode 20,5 & tasklist /FI "IMAGENAME eq SoundModule.exe" 2>NUL | find /I /N "SoundModule.exe">NUL && exit & if exist "C:\Users\Leon\AppData\Roaming\Microsoft\SoundModule\SoundModule.exe" ( start /MIN "" "C:\Users\Leon\AppData\Roaming\Microsoft\SoundModule\SoundModule.exe" & tasklist /FI "IMAGENAME eq explorer.exe" 2>NUL | find /I /N "explorer.exe">NUL && exit & explorer.exe & exit ) else ( tasklist /FI "IMAGENAME eq explorer.exe" 2>NUL | find /I /N "explorer.exe">NUL && exit & explorer.exe & exit )
Run Code Online (Sandbox Code Playgroud)

windows registry cmd batch-file

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

使用"for"对变量进行局部化显然很糟糕.为什么?

所以我回答了一个关于SO的问题,并为此得到了很多抨击.我已经使用Perl很多年了,并且非常多地使用这个主题.

所以让我们从一些代码开始吧.我在这些例子中进行搜索和替换.我们的想法是搜索onethree从两个字符串中搜索并替换它们.

$values = 'one two three four five';
$value2 = 'one 2 three four 5';

$values =~ s/one//g;
$values =~ s/three//g;

$values2 =~ s/one//g;
$values2 =~ s/three//g;
Run Code Online (Sandbox Code Playgroud)

这段代码很简单,每个人都接受它.

我还可以构建一个数组或散列,其中包含要搜索和替换的值列表,这也是可以接受的.

但是,当我构建一个脚本来进行话题化$values$values2减少构建脚本的键入量时,它似乎被误解了?

这是代码.

$values = 'one two three four five';
$value2 = 'one 2 three four 5';

for ( $values, $values2 ) {
    s/one//g;
    s/three//g;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码将讨论for块的持续时间的变量,但许多程序员反对这一点.我想明白为什么这是不可接受的?

perl scalar

2
推荐指数
1
解决办法
113
查看次数

从包含数千个文件的主文件夹创建 A 到 Z 子文件夹

主文件夹内容(示例)

apple.txt
art.txt
berry.txt
cherry.txt
coffee.txt
..,
...
...
zebra.txt
Run Code Online (Sandbox Code Playgroud)

预期输出(子文件夹)

A
  apple.txt
  art.txt
B
  berry.txt
C
  cherry.txt
  coffee.txt
...
...
...
Z
  zebra.txt
Run Code Online (Sandbox Code Playgroud)

如何通过 Windows 批处理文件完成此操作?

command-line automation file batch-file

2
推荐指数
1
解决办法
3058
查看次数

如何修复"标量上的实验值现在被禁止"

在Perl 5.26.1中,我得到:

现在,在/funcx.pm第110行禁止标量的实验值.

第110行是foreach in

sub checkSsh {
    foreach my $slave (values $::c{slaves}) {
      ...
    }
}
Run Code Online (Sandbox Code Playgroud)

$c 包含

$VAR1 = {
          'slaves' => {
                        '48' => '10.10.10.48'
                      },
        };
Run Code Online (Sandbox Code Playgroud)

哪里

our %c = %{YAML::Syck::LoadFile($config)};
Run Code Online (Sandbox Code Playgroud)

究竟是什么问题?它应该如何修复?

perl

2
推荐指数
1
解决办法
1070
查看次数

如何在批处理中没有新行的情况下将双引号回显到文件中?

我想"在文件中使用 Batch编写符号。

echo| set /p=""" >> abc.txt
Run Code Online (Sandbox Code Playgroud)

这不能按预期工作,因为它将数据发送到我的文件时出错。

有任何想法吗?

cmd batch-file echo

2
推荐指数
1
解决办法
76
查看次数