相关疑难解决方法(0)

如何批量增加文件名?

我正在编写一个批处理文件,可以使用谷歌地图地理定位 API 跟踪丢失的 Android 手机。我无法理解我的代码有什么问题。我遵循了在互联网上找到的所有内容,但如果我运行代码,它会返回“语法不正确”或类似的内容。如果基本名存在,它基本上会增加文件名。你能告诉我我的代码有什么问题以及如何纠正它吗?

:MainProcessNew
cd C:\Users\%USERNAME%\Documents
for %%G IN (*.json) do (
set file = %%G
)
set "baseName=data"
set "n=0"

:loop
set /a n+=1
if exist "%baseName%%n%.json (
goto loop
)

echo.>"C:\Users\%USERNAME%\Documents\data%n%.json"
Run Code Online (Sandbox Code Playgroud)

windows json batch-file

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

如何在Windows批处理文件中正确转义括号?

我正在尝试在Windows批处理文件中使用这些命令行:

SET mypath="%programfiles(x86)%\Directory\SubDirectory"
SET app2="com.estrongs.android.pop_4.1.6.8.9.3-604_minAPI14(armeabi^,armeabi-v7a^,x86)(nodpi)_apkmirror.com.apk"

If Not Exist "%mypath%\includes\apk\%app2%" (
  Rem DO SOMETHING
) ELSE (
  Rem DO SOMETHING ELSE
)
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误:

(nodpi)_apkmirror.com.apk was unexpected at this time.
Run Code Online (Sandbox Code Playgroud)

执行批处理文件时出现此错误消息的原因是什么?

windows batch-file

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

检查批处理文件中的空字符串

我正在学习批处理脚本,我复制了如何检查空的示例:

@echo off 
SET a= 
SET b=Hello 
if [%a%]==[] echo "String A is empty" 
if [%b%]==[] echo "String B is empty "
Run Code Online (Sandbox Code Playgroud)

但我收到这样的错误:

D:\Projects\Temp\BatchLearning>Script.bat
]==[] was unexpected at this time.
Run Code Online (Sandbox Code Playgroud)

什么问题?为什么这是在指南中。过去有用吗?从这里的例子。

更新:

我删除了第 2、3 和 5(最后)行末尾的一些空格,现在一切都按预期工作,这是怎么回事?

batch-file

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

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
查看次数

具有常量的变量的批处理文件比较失败

我想编写一段简单的代码来获取一些格式良好的“时间戳”。把时间花在我的两个变量上,Start并且End工作正常。我也可以将其打印为0:0:0。我想要一个小于零的前导零,但是很显然我得到一个错误,说“未找到或错误键入参数10”。我发现这似乎是要比较的变量,但未能解决。有任何想法吗?

@ECHO OFF
REM Time Calculation
FOR /F "skip=1 tokens=1-6" %%A IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Second /Format:table ^| findstr /r "."') DO (
 set Day=%%A
 set Hour=%%B
 set Minute=%%C
 set Second=%%D
)
set /a Start=%Day%*8640000+%Hour%*360000+%Minute%*6000+%Second%*100
@ECHO ON
ping 8.8.8.8 -n 11
@ECHO OFF
FOR /F "skip=1 tokens=1-6" %%A IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Second /Format:table ^| findstr /r "."') DO (
 set Day=%%A
 set Hour=%%B
 set Minute=%%C
 set Second=%%D
)
set /a End=%Day%*8640000+%Hour%*360000+%Minute%*6000+%Second%*100
set /a …
Run Code Online (Sandbox Code Playgroud)

batch-file

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

批处理脚本:此时\MyProg 出乎意料

我有一个简单的批处理脚本test.bat,它通过命令行参数进行迭代:

@echo off
set prefix=C:\Program Files\MyProg
for %%x in (%*) do (
    echo %prefix%
)
Run Code Online (Sandbox Code Playgroud)

这个版本的脚本在 cmd.exe 中没有问题:

C:\>test a b
C:\Program Files\MyProg
C:\Program Files\MyProg
Run Code Online (Sandbox Code Playgroud)

但是,如果我修改批处理文件以具有不同的prefix值,则添加(x86)

set prefix=C:\Program Files (x86)\MyProg
Run Code Online (Sandbox Code Playgroud)

脚本失败:

C:\>test a b
\MyProg was unexpected at this time.
Run Code Online (Sandbox Code Playgroud)

这悲剧!我该如何解决这个问题?

windows batch-file

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

批量延迟扩展无法按预期工作

我在下面写了示例批处理脚本,变量COUNT正在更新但不知何故MY_ROOT没有得到更新,我在这里遗漏了什么?

@echo off
setlocal ENABLEDELAYEDEXPANSION
set MY_ROOT= C:\
set COUNT=0

if 1 == 1 (  
  set MY_ROOT = D:\ 
  echo MY_ROOT = !MY_ROOT!

  set /A COUNT=10 
  echo Count = !COUNT!
)
:end

**o/p:**
MY_ROOT =  C:\
Count = 10
Run Code Online (Sandbox Code Playgroud)

谢谢.

batch-file

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

命令的语法不正确?

我是批处理新手,因此我无法弄清楚,为什么会出现语法错误??

这是我的代码:

set /p hostname1=<a.txt


echo %hostname1%

PAUSE

IF %hostname1% == 0 (
    SET %hostname02% = 1
    echo %hostname02% >> a.txt
    PAUSE

) 

IF %hostname1% == 1 (

    SET %hostname03% = 2
    echo %hostname03% >> a.txt
    PAUSE
    exit
) 

IF %hostname1% == 2 (
    echo MSGBOX "Message" > %temp%\TEMPmessage.vbs
    call %temp%\TEMPmessage.vbs
    del %temp%\TEMPmessage.vbs /f /q
) 
Run Code Online (Sandbox Code Playgroud)

这只是一个“为了好玩”的项目,但我想知道为什么我会收到这个烦人的错误!

batch-file

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

如何在 Windows 上的批处理脚本中附加/连接变量

我是批处理编码的新手。所以在基础知识上很挣扎。我想连接两个变量,然后在第三个变量中打印其连接结果。

批号

@echo off
SET basePath = C:\Users\Documents\
echo  basePath - %basePath%
SET fileName = T_test 
echo fileName - %fileName%
SET extension= .csv
echo extension - %extension%

SET finalvalue = %basePath%%fileName%%extension%
echo finalvalue - %finalvalue%
pause
Run Code Online (Sandbox Code Playgroud)

实际产量

 basePath -
fileName -
extension -  .csv
finalvalue -
Run Code Online (Sandbox Code Playgroud)

预期输出

  basePath - C:\Users\Documents\
  fileName - T_test
  extension - .csv
  finalvalue - C:\Users\Documents\T_test.csv
Run Code Online (Sandbox Code Playgroud)

*****更新******

由于 fileName 变量具有多个用逗号分隔的值。我想一一迭代

Batch Code

@echo off
    SET basePath=C:\Users\Documents\
    echo  basePath - %basePath%
    SET fileName=T_test,T_test2,T_test3 
    echo fileName - %fileName%
    SET …
Run Code Online (Sandbox Code Playgroud)

batch-file command-prompt

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

如何在其他变量的集合上将批处理变量添加到文件名?

代码优先:

ECHO off
SET home       = c:\Cygwin\home\ian
SET update_log = %home%\update.txt
                 ^^^^^^
Run Code Online (Sandbox Code Playgroud)

有没有办法在%home%变量的初始化中添加update_log变量,如上例所示?

windows cmd batch-file

0
推荐指数
1
解决办法
142
查看次数

批处理脚本:Echo 不打印变量值

我有一个批处理脚本:

echo on
Set appdir=This is testing for substring : Management\s18vx
ECHO %appdir%

REM get substring i.e, s18vx
Set SubStr = %appdir:~43%
ECHO %SubStr%

cmd /k
Run Code Online (Sandbox Code Playgroud)

获取子字符串后,我将其设置为新变量。在 Echo 上,此变量不打印任何内容。不知道这里出了什么问题。基本上我想用提取的字符串填充新变量,即本例中的 s18vx 。

在此输入图像描述

batch-file

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

标签 统计

batch-file ×11

windows ×4

cmd ×1

command-prompt ×1

json ×1

string ×1