Articles of for循环

了解(set)说明符的CMD.EXE FOR行为

我在Windows 7环境中执行CMD.EXEbatch file中有以下命令: FOR %%f IN ("C:\TEMP\FILE.TXT" "C:\TEMP\FILE2.TXT") DO ( ECHO %%f ) C:\ TEMP \ FILE.TXT 不存在 C:\ TEMP \ FILE2.TXT 确实存在 这会产生以下输出: "C:\TEMP\FILE.TXT" "C:\TEMP\FILE2.TXT" 但是,我发现如果我改变FOR命令来包含一个通配符,如? 或*在文件名中,我得到我期望的结果,这只是C:\ TEMP \ FILE2.TXT的回声 IE: FOR %%f IN ("C:\TEMP\FILE.TXT?" "C:\TEMP\FILE2.TXT?") DO ( ECHO %%f ) 产生: C:\TEMP\file2.txt FOR命令的文档声明: FOR %variable IN (set) DO command [command-parameters] %variable Specifies a […]

用于循环多个文件夹中的文件 – bash shell

我需要在for循环中有许多目录中的文件。 至于现在,我有以下代码: for f in ./test1/*; … for f in ./test2/*; … for f in ./test3/*; … 在每个循环中,我正在做同样的事情。 有没有办法从多个文件夹中获取文件? 提前致谢

linux shell脚本中for循环的语法

我有一个执行for循环的问题。 我执行我的脚本时出现此错误 test1.sh:2:语法错误:不适合循环variables 我不明白这个错误。 这是我的脚本 #!/bin/bash for (( c=1; c<=5; c++ )) do echo "Welcome $c times…" done 任何一个可以告诉我语法for循环在sh(在Ubuntu中,它链接到Dash shell)在Ubuntu的shell?

Windows蝙蝠:目录中的循环文件

我正在使用Windows。 我在一个目录的子目录中有很多jpg文件。 我不知道目录的架构,这意味着我不知道子目录有多less级别。 我需要做的是根据path处理jpg文件。 这里是一个例子: dir |—sub dir1 | |—–sub dir11 | |—–a.jpg | |—–b.jpg |—sub dir2 |—–c.jpg |—–d.jpg 所以我需要执行如下命令: process.bat C:\dir\sub dir1\sub dir11\a.jpg C:\dir\sub dir1\sub dir11\b.jpg process.bat C:\dir\sub dir2\c.jpg C:\dir\sub dir2\d.jpg 我不知道如何写这样一个蝙蝠文件,特别是一个蝙蝠处理path包含空格。 我不知道空间是否会造成一些麻烦。 我试过如下,但它不工作: @Echo off&SetLocal EnableExtensions EnableDelayedExpansion For /d %%A in (C:\dir\*) Do ( Set "Files=" For /f %%B in ("%%~fA\*.jpg") Do Set […]

批文件FOR / F标记

任何人都可以请解释如何以下代码工作,逐行。 我真的迷路了 我一直在试图学习如何使用FOR命令,但我不明白这一点。 @echo off for /f "tokens=* delims= " %%f in (myfile) do ( set line=%%f call :processToken ) goto :eof :processToken for /f "tokens=1* delims=/" %%a in ("%line%") do ( echo Got one token: %%a set line=%%b ) if not "%line%" == "" goto :processToken goto :eof

使用EnableDelayedExpansion时,修改variables的语法是正确的

我希望能够做%〜p只能看到文件的path。 但是我不能得到正确的语法在循环中使用它(使用EnableDelayedExpansion) 这是我的代码: @echo off set "dir1=%TMP%\opt" set "dir2=c:\opt" set "empty=" setlocal EnableDelayedExpansion for /f %%F in ('dir /a:-d /s /b /r "%dir1%"') do ( set "file_path=%%F" set "file_name=%%~nF" set "new_path=!file_path:%dir1%=%dir2%!" set "new_path=!new_path:!file_name!=%empty%" //This command is problematic echo !new_path! ) endlocal 任何方式对我来说呢?

如何使用命令提示符或Power Shell为多个文件夹中的多个文件创build符号链接?

我有两个主文件夹在不同的驱动器中有很多的子文件夹。 必须为第一个文件夹中的所有文件创build符号链接。 C:\folderC>tree /f C:. ├───folder1 │ file1.txt │ file3.txt │ └───folder2 file1.txt file3.txt D:\folderD>tree /f D:. ├───folder1 │ file2.txt │ └───folder2 file2.txt 结果使用2个命令: C:\>mklink C:\folderC\folder1\file2.txt D:\folderD\folder1\file2.txt symbolic link created for C:\folderC\folder1\file2.txt <<===>> D:\folderD\folder1\file2.txt C:\>mklink C:\folderC\folder2\file2.txt D:\folderD\folder2\file2.txt symbolic link created for C:\folderC\folder2\file2.txt <<===>> D:\folderD\folder2\file2.txt C:. ├───folder1 │ file1.txt │ file2.txt │ file3.txt │ └───folder2 file1.txt […]

如何安全地回应文字string“%I”?

如何以安全的方式回显string%I ,而不pipeecho命令行是否放在for %I循环中? 例如,在命令提示符( cmd )中: >>> rem // `echo` is outside of `for` scope, so this works: >>> echo %I %I >>> rem // `echo` is inside of `for` scope, so `%I` is resolved: >>> for %I in (.) do @echo %I . >>> rem // escaping does not help, `%I` is still resolved: […]

批量退出for循环

如果计数j达到0我不想离开for循环。 set /aj=3 for /R c:\dsd_imports\ad_and_deal %%i IN (*.*) DO ( MDI_import_ad_command.bat C:\DSD_IMPORTS\AD_AND_DEAL\%%~nxi MOVE %%ic:\dsd_imports\ad_and_deal\in_process set /aj=j-1 if j == 0 break )

FOR循环将每个迭代在同一行中用相同的前缀分组

我以一个练习题为例,将其作为一个练习来讨论: 合并pdf文件和相关的文件名 在这个问题上,我试图回答部分成功,因为它已经用更多的信息更新了这个问题。 总结这个问题是一个包含以下内容的文件夹: 123456_ABCD.pdf 123456_EFGH.pdf 123456_IJKL.pdf 111111_ABCD.pdf 111111_EFGH.pdf 222222_IJKL.pdf 222222_WXYZ.pdf 而在一个命令我想得到这样的输出: 123456_ABCD.pdf, 123456_EFGH.pdf, 123456_IJKL.pdf 111111_ABCD.pdf, 111111_EFGH.pdf 222222_IJKL.pdf, 222222_WXYZ.pdf 这里的每一行都假设代表在命令中find的相同前缀 这是我的尝试: @echo off ( copy nul 123456_ABCD.pdf copy nul 123456_EFGH.pdf copy nul 123456_IJKL.pdf copy nul 111111_ABCD.pdf copy nul 111111_EFGH.pdf copy nul 222222_IJKL.pdf copy nul 222222_WXYZ.pdf ) setlocal enabledelayedexpansion :: set _pdffiles= set _prevfiles= for /f […]