我正在尝试在批处理文件中定义和使用变量.它看起来应该很简单:
@echo off
set location = "bob"
echo We're working with "%location%"
Run Code Online (Sandbox Code Playgroud)
我得到的输出如下:
We're working with ""
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?为什么我的变量没有被回应?
我有一个批处理文件,可以自动将一堆文件从一个地方复制到另一个地方,然后返回给我.唯一的事情就是它帮助我,我不小心选择了命令缓冲区中的命令,并大量覆盖未经修改的更改.
我的.bat文件需要什么代码才能让它说"你确定",并让我在运行文件的其余部分之前输入"y"吗?如果输入"y"之外的任何内容,它应该退出该行的执行.
编辑 11月27日好的我再次标记这个未答复,因为我仍然无法弄明白.当我打电话给"退出"时 它关闭cmd.exe这不是我想要的.这一切都是因为Windows实现了命令缓冲区错误[不同于我至少习惯的]
我试图了解代码中的确切位置GOTO :EOF返回?
这是代码:
SET count=1
FOR /f "tokens=*" %%G IN (somefile.txt) DO (call :subroutine "%%G")
GOTO :EOF
:subroutine
echo %count%:%1
set /a count+=1
GOTO :EOF
Run Code Online (Sandbox Code Playgroud) 我试着理解批处理文件中单个命令行中的多个命令是如何工作的.
dir & md folder1 & rename folder1 mainfolder
Run Code Online (Sandbox Code Playgroud)
和其他情况类似的命令,但&用&&.
dir && md folder1 && rename folder1 mainfolder
Run Code Online (Sandbox Code Playgroud)
1.这两种情况有什么区别?
我想问的其他事情:
单线batch.bat:
dir & md folder1 & rename folder1 mainfolder
Run Code Online (Sandbox Code Playgroud)
多线程batch.bat:
dir
md folder1
rename folder1 mainfolder
Run Code Online (Sandbox Code Playgroud)
2.这种单线程和多线程在批处理文件程序方面是否相同?
还有一件事我想知道:
3.如果我从main.bat调用其他批处理文件,它们是否独立运行?主批处理文件不等待其他批处理文件中的结束程序?怎么做?
当我用python文件启动Visual Studio代码时,我开始收到以下错误
The environment variable 'Path' seems to have
some paths containing characters (';', '"' or ';;').
The existence of such characters are known to have
caused the Python extension to not load. If the
extension fails to load please modify your paths to
remove these characters.
Run Code Online (Sandbox Code Playgroud)
我检查了我的路径,确实有一个;; 出现.我删除了它,但我仍然收到错误.
这是我目前的路径.
PATH=C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Common Files\Lenovo;C:\SWTOOLS\ReadyApps;C:\Program …Run Code Online (Sandbox Code Playgroud) 下面的批处理命令将为我提供文件夹中的最新文件,但我只查找具有特定扩展名的文件。任何人都可以解释如何指定扩展名(即.jpg)
FOR /F "delims=|" %%I IN ('DIR "C:\Jenkins\Releases\C9metro" /B /O:D') DO SET NewestFile=%%I
Run Code Online (Sandbox Code Playgroud) 我需要使用批处理文件将值设置为环境变量.我为此编写了脚本:
@echo off
set value="Hello world"
setx -M srijani "%srijani%;%value%"
Run Code Online (Sandbox Code Playgroud)
它给出了错误:
ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
Type "SETX /?" for usage.
Run Code Online (Sandbox Code Playgroud)
我用Google搜索,发现在使用空格时我们需要在双引号内写.
set value="Hello world"
Run Code Online (Sandbox Code Playgroud)
但是,这也行不通.
注意:我在Windows 7上.
我有一个路径列表,我想从中提取文件夹名称
我写:
@echo off
set paths[0]="C:\p\test1"
set paths[1]="C:\p\test2"
set paths[2]="C:\p\test3"
(for %%p in (%paths%) do (
for %%F in (%%p) do echo Processing %%~nxF
))
Run Code Online (Sandbox Code Playgroud)
但似乎什么也没有显示。
我期望看到:
加工测试1
加工测试2
加工测试3
我试图通过检查字符串的第一个和最后一个字符来检查字符串是否被引用。但是我的脚本在检查报价时看到了失败,请参见输出:AND此时是意外的。下面。
码
@echo off
set mystring=Non quoted string
set myquotedstring=^"My quoted string^"
echo mystring: %mystring%
echo myquotedstring: %myquotedstring%
set result=%mystring:~0,1%
echo first character of non quoted string is: %result%
set result=%mystring:~-1%
echo last character of non quoted string is: %result%
if %mystring:~0,1%u==^" AND %mystring:~-1%==^" (
echo this string is NOT quoted
set newstring=^"Non quoted string^"
echo newstring: %newstring%
)
set result=%myquotedstring:~0,1%
echo first character of quoted string is: %result%
set result=%myquotedstring:~-1%
echo last character of quoted string is: %result%
if …Run Code Online (Sandbox Code Playgroud) 如果我运行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 | more,SET UNDEFINED …
batch-file ×9
cmd ×5
windows ×4
command-line ×2
escaping ×1
for-loop ×1
path ×1
python ×1
quotes ×1
simultaneous ×1
windows-7 ×1