如何在PowerShell中创建连续名称的多个目录?

时间:2014-06-15 10:12:02

标签: powershell

我正在编写运行可执行文件的脚本,每次可执行文件正常运行时,都必须创建目录和输出文件,然后将文件移动到目录中。问题来自目录的名称。我将名称作为参数传递给脚本,但名称不是我想要的名称,这里是代码:

IF ($args.Count -eq 2 -or $args.Count -eq 3) {
    $c = 0
    $i = 0
    $cont = 1
    do {
        ./simula.exe $cont RES
        IF ($? -ne 0) {
            $c = $c +1;
            New-Item $args$c -ItemType directory
            Move-Item RES $args$c
        }
        ELSE {
            $i = $i +1;
        }
        $cont = $cont +1;
}
while ($c -le $args[1])
    $c = $c -1;
    "Shan generat $c simulacions correctes."
    "Hi ha hagut $i simulacions erronies."
}   
ELSE {
    "Nombre de parametres incorrecte"
}

如果我这样运行它:.\treball DIREC 10它应该创建11个名为DIREC1,DIREC2,... DIREC11的文件夹,并在每个目录中放置一个名为RES的文件。但是,它创建的目录的名称是:DIREC101,DIREC102,... DIREC1011。 我一直在触摸New-Item系列中的一些东西,但我找不到我需要的名字。我该怎么办?

1 个答案:

答案 0 :(得分:1)

如果我没有错,那么您的脚本中的下面命令中的$args$c部分只是执行字符串连接,因为每个文档都是filename new-item命令行中的New-Item $args$c -ItemType directory

101

因此,为了检查您是否喜欢以下内容,它将生成一个名为$argc = 10 $c = 1 New-Item $argc$c -ItemType directory

的目录
10+1

(OR)如下所示,名为$argc = 10 $c = 1 New-Item $argc + $c -ItemType directory

的目录
new-item

所以,为了实现你的目标,你需要事先进行添加,然后将它作为参数传递给11命令行开关,如下所示,现在它将创建一个名为$argc = 10 $c = 1 $var = [int]$argc+[int]$c New-Item $var -ItemType directory 的目录

{{1}}