質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Q&A

解決済

1回答

909閲覧

仕事でリリースする業務の効率化を図るためバッチファイルを作成しております。

upasha

総合スコア6

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

0グッド

0クリップ

投稿2020/11/14 05:52

お世話になっております。

1.実現したい事
net useコマンドでドライブに割り当てた後、ストレージの指定したフォルダにあるものをリリースするサーバのフォルダへxcopyコマンドを使ってコピーします。
コピーをする事ができましたが、それが終わった後にストレージの指定箇所にあるフォルダからファイルに含まれているフォルダをまるごと削除する処理がうまく行かず、苦戦しております。

delコマンドでやってみたのですが、他にどのようなコマンドを使う事によってファイルに含まれているフォルダをまるごと削除する処理ができるのでしょうか。

お教えいただけたら幸いです。よろしくお願い致します。

2.条件
ストレージの指定したフォルダに割り当てるドライブをAドライブ、リリースするサーバのフォルダに割り当てるドライブをBドライブとする

3.自分が作成したバッチファイル文
echo

rem net useでストレージの指定箇所に接続
net use A: (ここにフルパスが入る) (ここに自分のパスワードが入る)/user:(ここに自分のドメイン名が入る)(ここに自分のIDが入る)

rem net use リリースするサーバのフォルダに接続
net use B: (ここにフルパスが入る) (ここに自分のパスワードが入る)/user:(ここに自分のドメイン名が入る)(ここに自分のIDが入る)

rem ストレージの指定箇所にあるフォルダをリリースするサーバの指定したフォルダへコピー
xcopy A:(ストレージの指定箇所にあるフォルダ名) B:(サーバの指定したフォルダ名) /I /S /E /Y /Q

rem コピーが成功したら、ストレージの指定箇所にあるフォルダからファイルに含まれているフォルダをまるごと削除
del /q A:(フォルダ名)\

rem Aドライブを切断
net use A: /delete

rem Bドライブを切断
net use B: /delete

pause

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/11/14 05:55

うまくいかないとはどういうふうになるんでしょうか
upasha

2020/11/14 06:07

ストレージの指定箇所にあるフォルダからファイルに含まれているフォルダをまるごと削除できないという事です
y_waiwai

2020/11/14 06:11

できないとはどうなるんですか? 一部だけ削除できるのか、全く削除できないのか、そこらへんの詳しい情報を提示しましょう エラーが出るならエラーメッセージを提示しましょう
dodox86

2020/11/14 06:15

> ファイルに含まれているフォルダをまるごと削除する処理ができるのでしょうか。 「ファイルに含まれているフォルダ」という表現が分かりません。フォルダー(ディレクトリ)はその上のフォルダーに含まれるもので、ファイルに含まれるものではありません。 > rem コピーが成功したら、ストレージの指定箇所にあるフォルダからファイルに含まれているフォルダをまるごと削除 > del /q A:\(フォルダ名)\ とは、例えばフォルダ名が「FOLDER」だったとしたら、A:\FOLDERごと削除するのですか?それとも A:\FOLDERの下のファイルとフォルダーを削除するのですか?
upasha

2020/11/14 13:48

説明不足で申し訳ございません。 dodox86さん >例えばフォルダ名が「FOLDER」だったとしたら、A:\FOLDERごと削除するのですか?それとも A:\FOLDERの下のファイルとフォルダーを削除するのですか? ⇒「A:\FOLDERの下のファイルとフォルダーを削除するのですか?」です。
hentaiman

2020/11/15 06:24

別の視点からの回答ですが、プログラムに精通していないのであればUIPathのCommunity Cloudの採用を検討してみるとかどうですか?無料で使えるものもあるので。 使った事は一切無いので紹介だけ。
dodox86

2020/11/15 06:31

すぐにでも有識者の方の回答がつきそうな質問に思いましたが、そうでもなかったのは質問の件名が問題の中身を表していないせいで、目に留まりづらかったのかもしれません。
guest

回答1

0

ベストアンサー

「質問への追記・修正の依頼」欄[2020/11/14 22:48]のコメントより:

例えばフォルダ名が「FOLDER」だったとしたら、A:\FOLDERごと削除するのですか?それとも A:\FOLDERの下のファイルとフォルダーを削除するのですか?
⇒「A:\FOLDERの下のファイルとフォルダーを削除するのですか?」です。

「A:\FOLDER」まるごと削除であればRMDIRコマンドを使い、RMDIR /Q /S A:\FOLDER で一発なのですが、指定のおおもとのフォルダーは残すとすると少し面倒ですね。指定のフォルダー直下のファイルはDELコマンドで削除し、その配下のフォルダー(ファイル含む)はRMDIRコマンドでひとつづつ削除するバッチファイル(*.cmd)の例を以下に示します。TARGETDIR変数にフォルダーのPATHを指定します。この例ではS:\WORK\FOLDER\としています。

CMD

1set TARGETDIR=S:\WORK\FOLDER\ 2 3if ""%TARGETDIR%""=="""" goto END 4 5rem 指定フォルダー直下のファイルのみを削除 6del /q %TARGETDIR%* 7 8rem フォルダーごとに削除 9for /D %%F in (%TARGETDIR%*) do ( 10 rmdir /q /s %%F 11) 12 13:END

TARGETDIR変数の値が空("")である場合、バッチファイル実行時のカレントディレクトリ下から**全てのフォルダーおよびファイル全てを削除するかたちになってしまいます。**ですので、上記例では空文字列の場合はスキップするようにしています。参考にされる際は内容を理解の上、充分注意して使ってください。

投稿2020/11/15 06:18

編集2020/11/15 06:19
dodox86

総合スコア9256

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/11/15 06:29

個人的に興味もあって回答しましたが、バッチファイル(*.cmd, *.bat)に限ったとしてももう少し良い方法があるかもしれません。
upasha

2020/11/17 11:49

dodox86さんの一つずつ削除するバッチファイル文で本日の業務で試してみたら、理想していた内容を実現する事ができました。 本当にありがとうございました。 少しずつ私も解決できるように努めます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問