相关疑难解决方法(0)

SETLOCAL和ENABLEDELAYEDEXPANSION如何工作?

我注意到在大多数脚本中,两者通常在同一行中:

SETLOCAL ENABLEDELAYEDEXPANSION
Run Code Online (Sandbox Code Playgroud)

这两个实际上是单独的命令,可以写在不同的行上吗?

ENABLEDELAYEDEXPANSION如果脚本设置在脚本的第一行并且在脚本结束之前未禁用,那么设置是否会对脚本产生负面影响?

cmd batch-file

47
推荐指数
3
解决办法
9万
查看次数

如何在批处理文件中使用SETLOCAL?

你如何setlocal在批处理文件中使用?我只是在学习脚本,并希望用非常简单的术语向我解释.

我有一个脚本停止并说它< was unexpected at this time可能与setlocal脚本中没有任何语句有关.

batch-file

36
推荐指数
2
解决办法
7万
查看次数

如何用"!"读取字符串 从Windows批处理脚本中的文件?

我正在编写一个批处理脚本来从文件中读取.该文件包含诸如token = value之类的行.我有代码来解析文件的每一行,它存储在%% i中.以下代码尝试提取令牌的值:

请注意,此脚本正在使用延迟扩展,如评论中所述.

   for /f "tokens=1* delims==" %%a in ("%%i") do (  
      if "%%a"=="password" ( set password=%%b )  
   )
Run Code Online (Sandbox Code Playgroud)

如果令牌密码的值包含"!",那么"!" 被跳过,只有其余的字符串存储在变量密码中.例如,如果该行是:

密码=测试!

然后变量密码=测试.我试图以各种方式更改输入文件,批处理脚本读取除"!"之外的所有内容.我用过:

  1. 密码="测试!"
  2. 密码= "测试^!"
  3. 密码=测试%!

    密码=测试%!

一切都跳过"!".知道如何用"!"读取字符串 变成一个变量?

windows cmd batch-file

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

将文件名设置为批处理文件中的变量

我有一个问题如何在批处理文件中将多个文件设置为变量?我尝试用下面的脚本做一些事情:

move c:\*.gpg q:\
for %%F in ("q:\*.gpg") do (set file=%%~nxF)
if exist q:\*.gpg echo done copying files: %file%
Run Code Online (Sandbox Code Playgroud)

以上仅适用于一个文件。如果有两个以上,则仅回显其中之一。如何在一行中回显复制的所有文件?

batch-file

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

标签 统计

batch-file ×4

cmd ×2

windows ×1