답변:
다음 명령을 사용하십시오.
0..9 | foreach $_{ New-Item -ItemType directory -Name $("ch" + $_) }
작동 방식 :
0..9범위 연산자 .. , ... 9 숫자 0, 1의 순서를 생성| 됩니다.foreach 루프 (각 번호를 차례로){ ... }A는 스크립트 블록은New-Item -ItemType directory -Name $("ch" + $_) 디렉토리를 만듭니다$_인 자동 변수 파이프 라인에서 현재 오브젝트 (값)을 나타낸다예:
> 0..9 | foreach $_{ New-Item -ItemType directory -Name $("ch" + $_) }
Directory: F:\test
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 25/09/2016 14:57 ch0
d----- 25/09/2016 14:57 ch1
d----- 25/09/2016 14:57 ch2
d----- 25/09/2016 14:57 ch3
d----- 25/09/2016 14:57 ch4
d----- 25/09/2016 14:57 ch5
d----- 25/09/2016 14:57 ch6
d----- 25/09/2016 14:57 ch7
d----- 25/09/2016 14:57 ch8
d----- 25/09/2016 14:57 ch9
1..9 | % $_{ mv ch$_*.* ch$_ }: ^ D
git add하고 반환하는 것을 볼 - 명심를하는 $_foreach는이 의미 마지막 파이프 라인 항목의 개별 배열 항목 (이다 안에 commit당신의 예제의 단계 그렇게 추가, 원시 번호를받지 않습니다 ch다시를 아마 잘못 ). 또한 귀하의 예에서 모든 추가가 완료된 후에 만 커밋이 실행됩니까 (?), 이는 첫 번째 커밋이 모든 것을 얻음을 의미합니다 ... 또는 ;단일 foreach 단계 내에서 여러 명령문 (으로 구분 )을 사용할 수 있습니다 .
New-Item경로 배열을 사용할 수 있으므로 mkdir을 여러 번 호출 할 필요가 없습니다 . 예를 들면 다음과 같습니다.
mkdir $(1..9 | %{"ch$_"})
@DavidPostill은 그의 답변 에서 대부분의 개념을 설명했다 . 또한 명시적인 연결을 수행하는 대신 문자열 보간을 활용 합니다 . 또한 %속기는 대신에 사용 ForEach-Object되지만 의미는 같습니다.
불행히도 bash에서와 같이 문자열을 문자열 배열에 보간하는 쉬운 방법은 없습니다.
md(0..9|%{"ch$_"})
md은에 대한 표준 별칭이며 mkdirPowerShell 함수입니다. %Bob이 언급했듯이의 표준 별칭은 ForEach-Object입니다. 큰 따옴표로 묶인 문자열 "ch$_"은 변수를 보간하므로 와 같습니다 'ch' + $_. 당신은 실행하여 별칭을 찾아 볼 수 있습니다 Get-Command( gcm그것을).
1..9 | %{"ch$_"} | %{git add "$_"; git commit -m "$_"}또는 1..9 | %{$name = "ch$_"; git add "$name"; git commit -m "$name"}. 댓글이 조금 길어 지므로 추가 질문이있는 경우 질문으로 문의하거나 채팅에 참여하세요.
기억하기 쉽고 많은 상황에 적용될 수 있으므로 for 루프 버전을 사용합니다. 여러 명령에도 사용할 수 있습니다.
이 bash 명령과 동등합니다.
{1..9}에서 i의 경우; 어떻게
내가 MKDIR 채널 $
수행을
... PowerShell 사용시 :
for($i=1;
$i -le 10;
$i++)
{md ch$i}
Missing opening '(' after keyword 'for'.:이 명령을 foreach ($i in 1..9) {md ch$i}저 디렉토리 apter "채널"을 번호를 얻을 수 있지만, 나는 당신의 "를 이해하지 않습니다. ..; do ... done "루프.
for($i=1; $i -le 10; $i++){md ch$i}고맙습니다 mamun,하지만 아직 "Bourne again ...";) (C ++도 모르지만 "$ i-le"(작거나 같지 않은 경우)을 이해한다고 생각합니다.) "$ i ++"(~ "i + = 1"?) 의미하고 명령을 수행하고 있습니다 ...
현재 디렉토리 아래에 여러 디렉토리를 작성하십시오.
mkdir ('abc','def','jkl')
위는 다음의 간단한 버전입니다. 문자열 배열 앞에 포함 된 at 기호와 명명 된 매개 변수 사용에 주목하십시오.
mkdir -Path @('abc','def','jkl')
그리고 모든 길을 가고 싶다면 완전한 기본 명령은 다음과 같습니다.
New-Item -Path @('abc','def','jkl') -ItemType Directory
PowerShell 명령 줄을 사용할 때는 짧은 버전을 사용합니다.
스크립트를 작성할 때 (특히 PowerShell을 처음 접할 수있는) 다른 스크립트를 작성할 때 전체 기본 명령을 작성하는 경향이 있습니다.
가장 적합한 것을 선택하십시오.
1..9 | % $_{ md -name $("ch" + $_) }.