web-dev-qa-db-ja.com

Windowsの別のフォルダ/ディレクトリにファイルをバッチ移動しますか?

ファイルを1つのファイルに移動できないというエラーメッセージが表示されます。私はこれをしようとはしていません。私がやろうとしていることは、あるフォルダーから別のフォルダー(ステージング)にファイルを移動してから、元のフォルダーを削除することです。

私がこれを正しく行っていないので、これを行うためのより良い方法を教えていただければ。

これが私の.cmdファイル:

Y:
move "Y:\ABC_files\*.js" "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
move "Y:\ABC_files\*.CSS" "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
move "Y:\ABC_files\*.png" "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
move "Y:\ABC_files\*.htm" "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
move "Y:\ABC_files\*.gif" "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
move "Y:\ABC.htm "C:\Documents and Settings\user\Desktop\ABC_Stage\"
rmdir "Y:\ABC_files"
C:\"Program Files"\"App X"\App-IDE.exe -r ABC4.run
7
jdamae

個人的には、特にバッチファイルを変更してから、スイッチを使用して古いディレクトリとファイルを削除する場合に役立つ、より多くのオプションがあるため、ここではXCOPYを使用します。

ファイルの場所または名前に実際のスペースがない限り、引用符もダンプします。あなたの最後の動きで、あなたは実際に引用を落としました、そしてそれはおそらくエラーを引き起こすでしょう。最後のステートメントも正しくありません。引用符は、スイッチの前ではなく、WHOLEコマンドを囲むだけで、その一部ではありません。潜在的に役立つと思われるスイッチを追加しました。xcopy/?を実行することで、各スイッチの機能を確認できます。コマンドプロンプトで。最後のコピーで、abc.htmが本当にルートディレクトリにあるかどうかも質問します...それを確認し、必要に応じて編集してください。最後に、ユーザー名を反映するようにユーザー部分を編集してください。あなたの最後の行はアプリケーション固有なので、これ以上何も知りません。

Y:
xcopy Y:\ABC_files\*.js "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
xcopy Y:\ABC_files\*.css "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
xcopy Y:\ABC_files\*.png "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
xcopy Y:\ABC_files\*.htm "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
xcopy Y:\ABC_files\*.gif "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
xcopy Y:\ABC.htm "C:\Documents and Settings\user\Desktop\ABC_Stage\"
rd Y:\ABC_files /s /q
del Y:\ABC.htm
"C:\Program Files\App X\App-IDE.exe" -r ABC4.run
5
KCotreau

あなたがしたいことに自分自身を提案する2つの解決策があります。 .js、.css、.htmなどのファイルのみをコピーする場合は、最初のソリューションを使用します。ソースフォルダーのすべてが本当に必要な場合は、2番目に進んでください。どちらもソースファイルを削除する前にすべてが正常であることを確認する機会を与えることに注意してください。また、ターゲットディレクトリがすでに存在することを前提としています。

解決策1:

for %%f in (js css png htm gif) do (
copy Y:\ABC_files\*.%%f "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files"
)

copy Y:\ABC.htm "C:\Documents and Settings\user\Desktop\ABC_Stage"

echo Check that your files copied correctly, then
pause
rmdir /s /q Y:\ABC_files
"C:\Program Files\App X\App-IDE.exe" -r ABC4.run

解決策2:

xcopy Y:\ABC_files\*.* "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files" /s /e

echo Check that your files copied correctly, then
pause
rmdir /s /q Y:\ABC_files
"C:\Program Files\App X\App-IDE.exe" -r ABC4.run
1
BillP3rd

次のコマンドを試してください

move "C:\Documents and Settings\amitrajk\Desktop\New Folder\*.*" "C:\Documents and Settings\amitrajk\Desktop\New Folder\InFolder"
0
user1992594

ディレクトリ全体を移動しないのはなぜですか?そうすれば、何もクリーンアップする必要なく、1つのコマンドですべてのファイルをコピーできます。

Move Y:\ABC_Files "%userprofile%\desktop\staging"

注:%userprofile%はC:\ documents and settings\CurrentlyLoggedOnUser \の変数です

バッチファイルで、次のように入力してファイルを再配置します。

Move /-y "Y:\ABC_Files" "%userprofile%\desktop\staging"
0
Gary