Articles of for循环

For循环打印两个$值而不是一个

我有一个bash数组循环的问题。 下面的代码,而不是单独打印每个值,join两个值,并打印它们,如果它们是一个。 #!/bin/bash declare -a array=( 'sf052' 'to060' 'pw' 'qb099' 'pw22' 'wp039' 'wx12' 'wx11' ) for i in "${array[@]}"; do echo $i done 输出: sf052 to060 pw qb099 pw22 wp039 wx12 wx11 预期产出: sf052 to060 pw qb099 pw22 wp039 wx12 wx11 运行bash –version提供 GNU bash, version 4.2.45(1)-release (x86_64-pc-linux-gnu) 和uname -a : Linux server1 3.11.0-12-generic #19-Ubuntu […]

我怎样才能循环通过脚本中的一些文件?

我在这是一个初学者,并寻找答案我的问题,但没有find任何我明白如何执行。 任何帮助将不胜感激。 我有一个脚本: FILE$=`ls ~/Desktop/File_Converted/` mkdir /tmp/$FILE mv ~/Desktop/File_Converted/* /tmp/$FILE/ 所以我可以使用Applescript来说当一个文件被放到这个桌面文件夹中时,创build一个临时目录,在那里移动文件和做其他的事情。 然后我删除临时目录。 这就好了,但问题是,如果另一个文件被丢弃到File_Converted目录之前,我正在做的东西的文件,我目前正在使用它将改变$ FILEvariables的值之前,脚本有完成对当前文件的操作。 我想要做的是使用variables设置variables,例如,$ FILE1。 我检查$ FILE1是否被定义,如果没有,使用它。 如果它被定义,然后尝试$ FILE2等…最后,当我完成,我想回收variables,所以$ FILE1得到设置回到空再次下一个文件放入File_Converted文件夹可以使用它再次。 任何帮助将不胜感激。 我是新来的,所以我不知道从哪里开始。 谢谢! 担

Linux脚本循环

我想在Linux脚本中创build一个循环,它将通过一个目录中的文件夹,并将照片复制到一个文件夹,并将覆盖具有相同名称的照片。 任何人都可以指出我的写作方向?

我如何重写这个多重OR条件,以便它使用Perl“for”循环?

我有一个硬编码的循环,看起来像这样: my $tp = 0; my $fp = 0; if ( $myhash{$pred} || $myhash{$pred1} || $myhash{$pred2} || $myhash{$pred3} || $myhash{$pred4} || $myhash{$pred5} || $myhash{$pred6} ) { $tp++; } else { $fp++; } 我怎么能在循环中做到这一点? 我尝试了以下,但它给总共的fp和tp不同的结果: my $tp=0; my $fp=0; my @allpreds = ($pred,$pred1,$pred2,$pred3,$pred4,$pred5); foreach my $allpred ( @allpreds ) { if ( $myhash{$allpred} ) { $tp++; […]

设置也没有工作在for Windows循环的dos cmd

我有一个脚本,search某些目录,并为给定的目录设置path列表,现在我想从他们排除一些反复不需要的。 这是脚本 @ECHO off setlocal enableextensions :start set scriptname=%0% set PAUSE_ON_ERROR=yes rem # rem ###### SECTION TO CUSTOMIZE ##### rem # rem # rem # This is the list of directories where instances of TECSYS iTopia installed under rem # JBoss are located. rem # set jboss_dir_list=C: C:\TecsysDev\iTopiaControlPanel\trunk rem # rem ###### END SECTION TO […]

通过Windows批量重命名具有不同扩展名的文件

我已经花了两天的时间,并且查看了我能find的每个论坛文件。 这是一个场景: 我有数以万计的图像文件:img_123.jpg,img_124.cr2,img_125.mov等,我需要他们命名为:64,001.jpg 64,002.cr2 64,003.mov等。 基本上重新命名文件,同时保持原来的扩展机制,同时把一个逗号在千位。 感谢阅读堆栈溢出问题的有用问答,我能够写出如下内容:A)以串行方式重命名文件,但没有逗号(64001.jpg 64002.cr2 64003.mov等)。 或者B)只将第一个文件重命名为唯一types(img_123.jpg变成64,001.jpg就好了,而img_124.jpg img_125.jpg等等都失败了,错误说文件名不是唯一的。 这是我的代码:

Windows批处理:For循环

我有一个文件FileLis.txt包含数据为 FILE1.TXT FILE2.TXT file3.txt等。 在代码的下面%%a显示的结果与上面的文件列表完全一样,但是当我把它赋给一个variables时,它只能得到第一行( set "TARG_FILE=%%a" )。 任何人都可以解释为什么这种行为的差异,什么是正确的写作方式? @ECHO off SETLOCAL EnableDelayedExpansion REM Write list of files of the input folder to a file DIR /od /bc:\data\All_Inputfiles\*.* > D:\data\FileLis.txt Set AllInputFile= D:\data\FileLis.txt ECHO " %AllInputFile%>>D:\data\debuginfo.txt for /f "tokens=*" %%a in (%AllInputFile%) do ( ECHO "Start of Main Loop Iteration#######################">>D:\data\debuginfo.txt ECHO set "TARG_FILE=%%a" ECHO "TARG_FILE […]

用于replacebatch file中的延迟扩展variables

我需要使用一个循环来replace已经在Windowsbatch file中分配的variables中的variables(%% g)。 我试过,只有当我使用%VAR%,但如果我使用!var! 它不会取代variables,这是一个问题,因为我有这些variables在数组中,我只能使用!var [%% h]! (%var [%% h]%不起作用)。 有没有办法让它工作? 也许有人打电话给什么? 这是一个例子: setlocal EnableDelayedExpansion SET var[0]=Hi %%g SET var[1]=Ciao %%g SET var[2]=Hola %%g SET var[3]=Hallo %%g SET var[4]=Salut %%g FOR %%g in ( Luke Paul Tom Mark) DO ( for /L %%h in (0,1,4) do ( ECHO !var[%%h]! ) ) 这是我得到的: Hi %g Ciao […]

batch file的循环内部为零点wmic输出

我不认为下面的batch file需要enableDelayedExpansion但不知何故,我忽略了for循环内嵌套的if / else树的问题。 我已经使用::评论了预期的操作。 它会进入“prepend 0”(当%%b为空时,我预计less于10)或“无前置”子句。 给定这个batch file: setlocal enableDelayedExpansion for /F "tokens=1,2 delims==" %%a IN ('wmic path Win32_LocalTime get * /format:list ^| findstr "="' ) do ( echo wmic_%%a=%%b if "%%b"=="" ( :: empty becomes 00 set wmic_%%a=00 ) else ( if %%b LSS 10 ( :: 0 prepend set wmic_%%a=0%%b ) else […]

为什么variables没有被for循环批处理脚本的每次迭代重新定义?

我有这个问题,我想重新定义一个for循环的每个迭代的variables。 我不明白为什么这不起作用。 我曾尝试使用enabledelayedexpansion搞乱,但没有成功。 echo off for /f "tokens=1-7 delims=::/ " %%A in ("%DATE% %TIME%") do set capture_time=%%D-%%B-%%C_%%E%%F%%G for /l %%a in (1,1,3) do ( echo %capture_time% timeout 3 /nobreak for /f "tokens=1-7 delims=::/ " %%A in ("%DATE% %TIME%") do set capture_time=%%D-%%B-%%C_%%E%%F%%G ) 我期望的输出将是这样的: 2015-08-27_132506.50 2015-08-27_132509.50 2015-08-27_132512.50 每次循环运行时, capture_time都会更新。