2

そのタイトルが十分に混乱していない場合..うまくいけば、私がやろうとしていることは理解しやすくなります。

言う必要がある場合に備えて、Windows 7。

作業中のフォルダー内に複数のディレクトリがあります。

C:\WorkingDir\1
C:\WorkingDir\2
C:\WorkingDir\3
and so on

これらの各フォルダー (1、2、3 など) 内には 1 つのサブディレクトリがあり、他のファイルやフォルダーはありません。

C:\WorkingDir\1\5E04AB
C:\WorkingDir\2\4F07FC
C:\WorkingDir\3\9DA04F

これらの単一のサブディレクトリのそれぞれを、親フォルダー内から新しいフォルダーに移動する必要があります。

C:\NewFolder\5E04AB
C:\NewFolder\4F07FC
C:\NewFolder\9DA04F

それでおしまい!私はそれが簡単かもしれないと思ったが、変数やそれらの使用方法を説明するより良いリソースに頭を包むことはできません。バッチファイルをまったく使用していないので、この叫び声をお詫び申し上げます。うまくいけば、もっと知識のある人が私を助けることができる簡単な説明を持っていることを願っています:-)

私はこれを見つけました: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true

しかし、今後の参考のために、バッチ変数とパラメーターについて詳しく学べるリソースにリンクしてもらえますか?

ありがとう、ありがとう、ありがとう

アップデート:

@endoro ご返信ありがとうございます。初めてコードを実行しようとしたときにユーザー エラーが発生したに違いありません。正常に動作しており、すべて順調です。どうもありがとう!

更新 2 User1 が提供したコードを実行すると、NewFolder ディレクトリが作成されますが、何もコピーされません。空のままです。以下は、DOS を実行したときに繰り返される出力の一部です。

C:\WorkingDir>(
set fldr2=C:\WorkingDir\1\5E04AB
 move "C:\WorkingDir\\" "C:\NewFolder\"
)
The system cannot find the file specified.

C:\WorkingDir>(
set fldr2=C:\WorkingDir\2\4F07FC
 move "C:\WorkingDir\\" "C:\NewFolder\"
)
The system cannot find the file specified.

C:\WorkingDir>(
set fldr2=C:\WorkingDir\3\9DA04F
 move "C:\WorkingDir\\" "C:\NewFolder\"
)
The system cannot find the file specified.`
4

2 に答える 2

0

出力を見て、問題がなければ削除してくださいecho:

@echo off &setlocal 
set "workingdir=WorkingDir"
md "C:\NewFolder" 2>nul

pushd "%workingdir%"
cd
for /d %%i in (*) do for /d %%j in ("%%~i\*") do echo move "%%~fj" "C:\NewFolder\%%~nxj"
popd
于 2013-04-17T18:16:35.170 に答える