相关疑难解决方法(0)

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

.bat 文件中的“rem”注释导致错误“此时 25 出乎意料”

这不是很奇怪吗?.bat rem 命令有某种转义码吗?

文件.bat:

rem https://sourceforge.net/p/jedit/bugs/4084/?limit=25
Run Code Online (Sandbox Code Playgroud)

运行它:

C:\Users\admin>file.bat
25 was unexpected at this time.

C:\Users\admin>https://sourceforge.net/p/jedit/bugs/4084/?limit=25
Run Code Online (Sandbox Code Playgroud)

我没有看到任何错误级别。

comments batch-file

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

windows cmd 如何设置解析变量名?

如果我运行set如下:

C:\Users\vagrant>SET UNDEFINED=foo

C:\Users\vagrant>SET UNDEFINED
UNDEFINED=foo

C:\Users\vagrant>SET UNDEFINED  
Environment variable UNDEFINED   not defined

C:\Users\vagrant>SET UNDEFINED | more
UNDEFINED=foo

C:\Users\vagrant>SET UNDEFINED >nul

C:\Users\vagrant>SET UNDEFINED >nul 
Environment variable UNDEFINED   not defined

C:\Users\vagrant>SET UNDEFINED  | more
Environment variable UNDEFINED   not defined

C:\Users\vagrant>SET UNDEFINED >nul | more
Environment variable UNDEFINED   not defined

C:\Users\vagrant>SET UNDEFINED >nul| more

C:\Users\vagrant>SET UNDEFINED 2>nul | more

C:\Users\vagrant>SET UNDEFINED 2>nul| more
UNDEFINED=foo
Run Code Online (Sandbox Code Playgroud)

注意,上面的第二个命令是SET UNDEFINED ,后面有两个空格。而且SET UNDEFINED >nul SET UNDEFINED >nul | moreSET UNDEFINED …

windows cmd batch-file environment-variables

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

在Batch中读取带有特殊字符的文件

如何在批处理中读取和解析具有特殊字符的文件?我有一个名为test.txt的文本文件,只有foo!!!bar一个批处理文件:

@echo off
setlocal enabledelayedexpansion enableextensions

FOR /F "tokens=* delims=" %%a IN (.\test.txt) DO (
    echo Unquoted is %%a
    echo Quoted is "%%a"
    set "myVar=%%a"
    echo myVar is still !myVar! or "!myVar!"
)
exit /b 0
Run Code Online (Sandbox Code Playgroud)

我希望并期望它以foo!!!bar某种方式输出,但这输出:

Unquoted is foobar
Quoted is "foobar"
myVar is still foobar or "foobar"
Run Code Online (Sandbox Code Playgroud)

当然我可以type test.txt,但我想处理文件的每一行.

io for-loop batch-file special-characters

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

使用find,trim lead和trail space提取多行

之前的问题是从文本文件中提取多行,现在工作正常,但它仍然需要一些改进来修剪前导和尾随(棘手的部分)空格/制表符空间以及通过Stackoverflow搜索我找到了很多答案并让我结合起来我最后的批处理脚本,但是从所有人把它放在一起它可能不是那么正确.

Details.txt(源文件)

line not needed, Copy and help with these command prompt:
line not needed:
(whitespace)(whitespace)some text not needed Copy "c:\.." a b c(white space)
line not needed:
line not needed, Copy and help with these command prompt:
(whitespace)Copy "d:\.." a c c(tab space)
line not needed
(tab space)(tab space)Copy "e:\.." a a c(whitespace)
line not needed
Run Code Online (Sandbox Code Playgroud)

op.txt(输出文件)

Copy "c:\.." a b c
Copy "d:\.." a c c
Copy "e:\.." a a c
Run Code Online (Sandbox Code Playgroud)

让我们看看第一个批处理脚本.(没有修剪引线和轨迹空间)

@ECHO OFF …
Run Code Online (Sandbox Code Playgroud)

trim batch-file find

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

如何将转义双引号传递给批处理文件

我知道有类似的问题,但有一件事我在答案中找不到.我正在尝试将以下字符串传递给批处理文件:

hello " world
Run Code Online (Sandbox Code Playgroud)

这只是一个论点.这是我的批处理文件:

@echo off
@echo %1
Run Code Online (Sandbox Code Playgroud)

现在如果我从命令行运行它,我得到以下结果:

>C:\file.bat "hello "" world"
"hello "" world"

>C:\file.bat "hello \" world"
"hello \"

>C:\file.bat "hello """ world"
"hello """
Run Code Online (Sandbox Code Playgroud)

在所有情况下,我得到了错误的结果,如何逃避双引号并正确传递?或者我应该在批处理文件本身中执行任何其他转换步骤?

windows batch-file

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

WMIC产品,其中"name like ..." - 如果在批处理文件中运行,则"无实例可用"

我想找到在特定工作站上运行的Outlook版本.如果我手动运行

wmic /node:"hostname" product where "Name like '%Office Outlook%'" get Name
Run Code Online (Sandbox Code Playgroud)

在命令行中,它的工作原理.但是如果我从批处理文件中运行它,它将返回"没有可用的实例".我甚至从批处理文件中删除了其他所有内容,所以只留下这一行 - 我仍然得到相同的结果.我错过了什么吗?

wmic

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

管道到 BATCH 脚本中的 CALL 函数

目前,我有以下文件:

脚本文件

type input1.csv | repl.bat " " ""  >> output1.csv
type input2.csv | repl.bat " " "" >> output2.csv
type input3.csv | repl.bat " " "" >> output3.csv
Run Code Online (Sandbox Code Playgroud)

repl.bat 来源:https ://gist.github.com/wpsmith/8459524

我想把repl.bat的函数编译成Script.bat。

我试过:

:replscript
{repl content blah blah}
@exit /b
type input1.csv | replscript " " ""  >> output1.csv
type input2.csv | replscript " " "" >> output2.csv
type input3.csv | replscript " " "" >> output3.csv
Run Code Online (Sandbox Code Playgroud)

但似乎它不起作用。

任何的想法?

[更新 1] 完整脚本如下(感谢@Jeb 的输入!)

@echo off
set "func=%~1"
if …
Run Code Online (Sandbox Code Playgroud)

batch-file call

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

如何将大于和小于添加到批处理文件变量中

当我尝试

@echo off
set PTag=^<BR^>
echo %PTag%
Run Code Online (Sandbox Code Playgroud)

我什么都没有。

现在有趣的是,如果在最后一个回显之后有一个空行,我将得到:

The syntax of the command is incorrect.
Run Code Online (Sandbox Code Playgroud)

如果我删除@echo,那么它实际上输出

echo <BR>
Run Code Online (Sandbox Code Playgroud)

我想在变量内添加各种HTML标记,然后将这些变量连接起来以创建将在文件中输出的HTML。

batch-file

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

Windows批处理文件中的IF条件下的“ ...”和x“ ...”之间有什么区别?

我最近在文章“ 查找子字符串是否在字符串中(而不是在文件中)”中发现

@setlocal enableextensions enabledelayedexpansion
@echo off
set str1=%1
if not x%str1:bcd=%==x%str1% echo It contains bcd
endlocal
Run Code Online (Sandbox Code Playgroud)

然后

x平等的双方之前是要确保字符串bcd工作好。它还可以防止某些“不合适的”起始字符。

但是,我还没有找到关于this实际效果的任何解释x。那么x"%string%"和之间有什么区别"%string%"

string batch-file

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