相关疑难解决方法(0)

命令行.cmd/.bat脚本,如何获取运行脚本的目录

如何获取运行的脚本目录并在.cmd文件中使用它?

batch-file

78
推荐指数
2
解决办法
11万
查看次数

cmd.exe(批处理)脚本中的数组,链接列表和其他数据结构

我正在玩cmd.exe,但在它的帮助下我没有找到任何信息,如何定义数组.

我发现,如何定义简单变量:

set a=10
echo %a%
Run Code Online (Sandbox Code Playgroud)

但是,我想创建数组,链表等...

那么,它能否在cmd.exe中使用(我的意思是:cmd.exe中是否存在任何数组关键字?)

我想实现一些算法:

  • 泡泡排序
  • 快速排序
  • 侏儒排序

等等...

所以,我也想知道,Cmd.exe是否有引用或实例,结构等?

导致其帮助不完整:/?

可以通过图灵机定义将Cmd.exe定义为完整吗?(图灵完成)

windows arrays cmd batch-file delayedvariableexpansion

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

如何批量循环逗号分隔的字符串?

视窗

根据帖子(dos批处理通过分隔字符串),我在下面编写了一个脚本,但没有按预期工作.

目标:给定字符串"Sun,Granite,Twilight",我想在循环中获取每个主题值,以便我可以使用该值进行一些处理.

当前输出不正确:

list = "Sun,Granite,Twilight"
file name is "Sun Granite Twilight"
Run Code Online (Sandbox Code Playgroud)

对于第一次迭代,它应该是:

list = "Sun,Granite,Twilight"
file name is "Sun"
Run Code Online (Sandbox Code Playgroud)

然后第二次迭代应该是"文件名是"花岗岩"等等.我做错了什么?

码:

set themes=Sun,Granite,Twilight

call :parse "%themes%"
goto :end

:parse
setlocal
set list=%1
echo list = %list%
for /F "delims=," %%f in ("%list%") do (
    rem if the item exist
    if not "%%f" == "" call :getLineNumber %%f
    rem if next item exist
    if not "%%g" == "" call :parse "%%g"
)
endlocal

:getLineNumber
setlocal
echo …
Run Code Online (Sandbox Code Playgroud)

batch-file

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

"delims=#+#" - 超过 1 个字符作为分隔符

是否可以定义一个不限于 1 个字符的分隔符?根据标题的示例,我想将分隔符定义为“#+#”。文本文件/行可以包含这两个字符,但是您很少有机会遇到该特定的子字符串/文本组合。

windows cmd batch-file

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

如何获取分配给循环中处理的环境变量的逗号分隔字符串的每个项目?

FOR循环仅输出列表中的第一个项目,我试图去在整个列表.

@ECHO OFF
set list=this,is,a,list
FOR /f "tokens=1* delims=," %%a IN ("%list%") DO echo %%a
pause
Run Code Online (Sandbox Code Playgroud)

for-loop batch-file

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