0

そのため、フォルダー内のすべてのファイルを別の拡張子でそのフォルダーにコピーしたいと思います。私は Windows 7 を使用していますが、これを行う最も簡単な方法は .cmd スクリプトを使用することだと思います。(これは古いソリューションのように見えるため、.batに反対することにしました)

私のファイルはこのパターンに従います

BrettFavre.nunit.config
JohnElway.nunit.config
TimTebow.nunit.config 

私は彼らがこのように見えることを望みます

BrettFavre.dll.config
JohnElway.dll.config
TimTebow.dll.config 

私の解決策は copy *.config *.dll.config

.dll.config で終わるものを取得する代わりに、.nunit.dll.config で終わることが判明しました。何か考えがあれば、cmd スクリプトの良いリファレンスを知っていれば教えてください。ガイドが .bat 用か .cmd 用かを判断するのに苦労しました。

ありがとう

4

2 に答える 2

4

コマンドラインから:

for %A in (*.config) do for %B in ("%~nA") do copy "%A" "%~nB.dll.config"

バッチ ファイル内から、パーセントを 2 倍にする

for %%A in (*.config) do for %%B in ("%%~nA") do copy "%%A" "%%~nB.dll.config"
于 2012-06-16T03:39:53.147 に答える
1

コマンドラインからpowershellを使用する(もちろん、これをスクリプトに入れることもできます):

PS> $files = Get-ChildItem *.nunit.config
PS> foreach($file in $files) {
>> $newname = [regex]::replace($file, "nunit", "dll")
>> Copy-Item $file -destination $newname
>> }
>> 
PS> 

次のように、これを 1 行のコマンドに圧縮できます。

gci *.nunit.config | % {copy $_ -dest ($dest = [regex]::replace($_, "nunit", "dll"))}

@Joeyは良い点を指摘しています。-replace 演算子を使用すると、これを簡略化できます。

gci *.nunit.config | % {copy $_ -dest ($_ -replace "nunit", "dll")}
于 2012-06-15T22:36:57.440 に答える