多くの場合、作業中のファイルを追跡しなければならないため、数千のリストから100を引き出す必要があります。そのため、バッチファイルディレクトリのcsvにリストされ、デスクトップのフォルダに貼り付けられます。サブディレクトリを含むファイルのリストをコピーするバッチファイル
これはうまくいきましたが、私は多くの場合、十数ディレクトリの何百ものファイルに対してこれを行う必要があったので、サブディレクトリを含めるように修正しようとしました。私は問題を抱えていて、StackOverflowの優秀な人たちが助けてくれるのだろうかと思っていました。ありがとう!問題の
@echo on
set theDest="%USERPROFILE%\Desktop\Batch Copies %date:/=%"
set /p MY_TEXT=<FileList.csv
echo.%MY_TEXT%
set MY_TEXT=%MY_TEXT:"",""=,%
echo.%MY_TEXT%
if not exist %theDest% md %theDest%
pause
for /R %MY_TEXT% %%G IN (.) do (
for /F "skip=1 delims=" %%f in (FileList.csv) do (
if exist "%MY_TEXT%\%%f.*" (
copy "%MY_TEXT%\%%f.*" %theDest%
) else (
if exist "%MY_TEXT%\%%f" (
copy /R "%MY_TEXT%\%%f" %theDest%
) else echo "%MY_TEXT%\%%f" does not exist && echo 0 file^(s^) copied. && echo ERROR: %%f not found && echo. && pause)
)
)
echo. && echo. && echo Process Completed. &&echo.
pause
パートは、私はちょうどので、私はおそらく1つ以上の方法を、それを台無しにしました私がこれを書いたときのバッチに入るし、それを左にして戻ってくると、すべてがどのように動作するかを把握しようとしていますしてさ。
だから用/ R%MY_TEXT%%% G IN MyCopyFunction呼び出しを行う(。):MyCopyFunction を(FileList.csv)で%%のF "= 1 delims =スキップ"/Fのために行う \t存在する場合、「%% F *」( \t \tコピー "%% F。*" %theDest% \t \t)他( \t存在する場合は、 "%% F"( \t \tコピー "%% F" %theDest% \t \t ) – hype124
申し訳ありませんが、私はそれを動作させることができませんでした。どのように現在のディレクトリに宣言せずに変数fを参照していますか? – hype124
あなたは '/ R%MY_TEXT %%% G'のために書いています。私はなぜ '%MY_TEXT%'がループの途中にあるのか分かりません?? – abelenky