

Dドライブ
├MyDocuments
├Userdata
├ファイルA
├ファイルB
└ファイルC
このようなフォルダ構成のドライブがあります。
このドライブ直下に「Dドライブのデータ」というフォルダを作成し
その中にMyDocumentsとUserdataを除いた全てのファイルを「移動」したいと考えています。
対象の端末数が多いので、バッチか何かで自動化したいと考えているのですが
何か良い方法はありませんでしょうか?
・MOVEコマンドは除外の指定が出来ないので使えません。
・XCOPY+DELは、ドライブの空き容量(D以外も含む)の関係で出来ません。
・ユーザーによってファイルAがファイル1だったり、ファイルFまであったりするので
一つずつMOVEを書いたバッチを作るというのも難しいです。
コマンドプロンプト以外をよく知らないのですが、他の方法でも構いません。
よろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
WSHを使った方が楽ですがバッチで作るとこんな感じですかね…
@ECHO OFF
' 移動元ディレクトリ
SET SRC_DIR=D:
' 移動先ディレクトリの名前
SET DEST_DIR_NAME=Dドライブのデータ
' 移動先のディレクトリのフルパス
SET DEST_DIR=D:\%DEST_DIR_NAME%
REM ファイルを移動する
FOR %%f IN ("%SRC_DIR%\*") DO MOVE "%%f" "%DEST_DIR%"
REM ディレクトリを移動する
FOR /D %%d IN ("%SRC_DIR%\*") DO (
REM 除外するディレクトリか調べるサブルーチンを調べる
REM %%~ndは%%dのファイル名(ディレクトリ名)
CALL :IS_EXCLUDE_DIR "%%~nd"
REM 終了コードが1以上の場合はディレクトリを移動する
IF NOT ERRORLEVEL 1 MOVE "%%d" "%DEST_DIR%"
)
EXIT /B
REM 除外するディレクトリか調べるサブルーチン
:IS_EXCLUDE_DIR
SETLOCAL
FOR %%e IN ("My Documents" "Userdata" "%DEST_DIR_NAME%") DO (
REM 除外するディレクトリの場合、終了コードに1を返す
IF /I %%e EQU %1 EXIT /B 1
)
)
ENDLOCAL
EXIT /B 0
No.5
- 回答日時:
こんにちは。
ANo.3 で紹介された UWSC でのプログラム例です。
(使用法)
・スクリプトを保存しておきます
・エクスプローラウインドウを開いて D:\ を開いておきます
・スクリプトを起動します
(コメント)
★1 途中経過を都度表示しながらする場合 true を設定します
★2 エクスプローラウインドウのタイトルの一部もしくは全部を設定します (D:\ 直下ならこのままでOK)
★3 サンプルはコピー&ペーストですが、カット&ペーストする場合は VK_C → VK_X に変更します
(スクリプト)
const _debug = false // ★1 false → true (ダイアログ表示)
public wid
confirm("開始します...")
wid = GETID("ボリューム (D:)", "CabinetWClass") // ★2 "ウインドウのタイトル"
confirm("フォルダを作成します...")
SCKEY(wid, VK_ALT, VK_F, VK_W, VK_F)
SLEEP(0.1)
SCKEY(wid, VK_ENTER)
SLEEP(0.1)
SCKEY(wid, VK_APPS, VK_M)
SLEEP(0.1)
SENDSTR(wid, "Dドライブのデータ")
SLEEP(0.1)
SCKEY(wid, VK_ENTER)
SLEEP(0.1)
confirm("未選択の状態にします...")
SCKEY(wid, VK_CTRL, VK_A)
SLEEP(0.1)
SCKEY(wid, VK_ALT, VK_E, VK_I)
SLEEP(0.1)
confirm("コピー対象を選択します...")
KBD(VK_CTRL, DOWN)
SLEEP(0.1)
CLKITEM(wid, "MyDocuments", CLK_MUSMOVE, false)
SLEEP(0.1)
KBD(VK_CTRL, UP)
SLEEP(0.1)
KBD(VK_CTRL, DOWN)
SLEEP(0.1)
CLKITEM(wid, "Userdata", CLK_MUSMOVE, false)
SLEEP(0.1)
KBD(VK_CTRL, UP)
SLEEP(0.1)
KBD(VK_CTRL, DOWN)
SLEEP(0.1)
CLKITEM(wid, "Dドライブのデータ", CLK_MUSMOVE, false)
SLEEP(0.1)
KBD(VK_CTRL, UP)
SLEEP(0.1)
SCKEY(wid, VK_ALT, VK_E, VK_I)
SLEEP(0.1)
SCKEY(wid, VK_CTRL, VK_C) // ★3 VK_C → VK_X (移動の場合)
SLEEP(0.1)
confirm("コピーします...")
CLKITEM(wid, "Dドライブのデータ", CLK_LEFTCLK)
SLEEP(0.1)
SCKEY(wid, VK_APPS, VK_P)
SLEEP(0.1)
confirm("終了しました (Exiting...)")
procedure debugOut(s, indent = 0)
if _debug then print FORMAT(" ", indent * 4) + s
fend
procedure confirm(s)
if _debug then MSGBOX(s)
fend
No.3
- 回答日時:
UWSCなどのマクロソフトで操作を記録し、それを各端末で実行させてみてはどうでしょうか? chie65536さんがおっしゃっている「選択の切り換え」を記録させれば、ファイル名が異なるような環境でも動作すると思います。
http://www.vector.co.jp/magazine/softnews/060627 …
No.2
- 回答日時:
もう1つ方法が。
d:
cd \
md Dドライブのデータ
for %f in (*.*) do move d:\%f d:\Dドライブのデータ
と書いたバッチファイルを動かせば「D:\にあるファイルが全部」移動されます。
for コマンドは「フォルダは無視する」ので、MyDocumentsとUserdataは移動されません。つまり「MyDocumentsとUserdataを除いた全てのファイル」が移動されます。
なお「それ以外のフォルダ」も無視されるので、D:\は「フォルダだけ存在する状態」になります。
この回答への補足
すみません、書き間違えていました。
「Dドライブのデータ」に移動させたいのは
MyDocumentsとUserdataを除いた全てのファイル「とフォルダ」でした…
でもこの方法は良さげですね。
これに加えてフォルダも移動できればいいのですが…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ファイル一覧表を使ったファイルの移動 5 2022/08/10 15:37
- その他(データベース) Accessのリンクテーブルについて 1 2023/05/20 16:10
- AJAX RPA(PowerAutomate)の実装について 1 2023/07/31 13:46
- Google Drive 【Googleドライブ】ドライブ上内でのフォルダ移行について 4 2022/11/30 12:50
- UNIX・Linux VirtualBox ゲストOSにPC内蔵HDDのパーティションをマウントする方法は? 2 2023/05/06 22:52
- Windows 95・98 再質問 5 2022/11/29 08:58
- Windows 10 USBにwindows10をいれて起動する方法 5 2022/04/14 14:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- デスクトップパソコン フォルダ内のファイル移動が出来ません 3 2022/10/16 05:42
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
このQ&Aを見た人はこんなQ&Aも見ています
-
Batch: フォルダ内の特定のファイル以外を全て削除
その他(プログラミング・Web制作)
-
バッチ処理でファイルの中身を変数に入れるやり方
その他(プログラミング・Web制作)
-
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
-
4
複数フォルダをまとめて移動するバッチ
Windows Vista・XP
-
5
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
6
バッチファイルで特定のファイル・ディレクトリ以外を削除する方法について
その他(開発・運用・管理)
-
7
moveコマンドで別のドライブにフォルダを移動
その他(OS)
-
8
指定以外のファイルやフォルダを削除したい。
UNIX・Linux
-
9
バッチを用いたフォルダの自動移動
Visual Basic(VBA)
-
10
バッチファイルで指定拡張子以外のファイルをコピーする方法
その他(プログラミング・Web制作)
-
11
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
12
xcopyで特定のファイルのみをコピーする方法
Windows 10
-
13
バッチコマンドでファイル名の一部を参照して削除
その他(プログラミング・Web制作)
-
14
バッチファイルでDirで取得したファイル名を変数に入れる方法
その他(プログラミング・Web制作)
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LAN接続HDDからCDに書き込もう...
-
マイコンピュータへのアクセス...
-
IEの履歴の移動
-
CDドライブへファイルを送っ...
-
マイドキュメントをCDにコピー
-
Win10アップグレード後 Micro O...
-
Windowsで指定「以外」のファイ...
-
MP3
-
Dドライブのゴミ箱はどこにある...
-
ゲームの再インストール
-
USBフラッシュメモリの使い方を...
-
解凍後の.zipファイルは消して...
-
VCSファイルをCSVファイル に変...
-
Geek Uninstaller と Revo Unin...
-
ファイルを閉じても開いている...
-
CドライブのAPSETUPフォルダは...
-
Outlook2010 データ (.ost)の復元
-
Excelで「同じ名前のファイルが...
-
プログラム単位のバックアップ
-
Norton System Works 2004のLiv...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パソコン内の全ファイル数を調...
-
ワードのデータをUSBに保存した...
-
PCからUSBメモリなどにコピーす...
-
Windowsで指定「以外」のファイ...
-
Windows.oldの保存
-
AVCD
-
CドライブをHDDにコピーしたら...
-
Cドライブに不明な大容量ファイ...
-
Dドライブのゴミ箱はどこにある...
-
XPからVistaに画像は正常...
-
動画を・・・
-
iTunesの曲を外付けHDDにすべて...
-
SDカードの音楽をSSDにバックア...
-
Cドライブの一部をミラーリング...
-
SSDのRAID 0(ストライピング)...
-
XCOPY コマンドがドライブパス...
-
ドラック&ドロップでコピーで...
-
ハードディスクから異音がしま...
-
MSN exのお気に入り
-
別のドライブへファイルの転送
おすすめ情報