
お世話様です。
WindowsXPの『C:\batch』フォルダにあるバッチファイルの作成に困っております。
『D:\test』フォルダに下記の3ファイルがあります。
・CS_○○○.txt
・CS_×××.txt
・CS_△△△.txt
※記号の部分は数字部分です。
理想の手順としては下記の通りです。
(1)『D:\test』フォルダ内にて一番更新日付が新しいファイル以外をすべて『D:\test\bkp』フォルダに複写。
(2)その後に、『D:\test』フォルダ内にて一番更新日付が新しいファイル以外を削除。
という処理を実施したいのですが、どうもうまく作成出来ません。
ちなみにMOVEコマンドは処理的に危険度が高いので、削除対象ファイルは一度複写しつつ、
その後に削除という手順が理想です。
お手数ですが、何かご教授願いますでしょうか?
※サンプルコードがあると、非常に助かります。
何卒宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
vbscriptで記述したWSHでできると思われます。
サンプルコードを記載します。
テキストファイルに貼り付けて、拡張子を、.vbs にして実行すればよいです。
(いちおう実機検証はしてみましたが、このコードの実行上発生する
いかなる損害も負いかねますので、十分ご検証の上、自己責任で
お願いいたします。)
ファイルコピーと、削除を別に実行したい場合は、
(1)、(2)、(3)を、コピー実行プログラムとして、1ファイル
(1)、(2)、(4)を、削除実行プログラムとして、1ファイルにそれぞれして
実行すればよいかと思います。
以下サンプルコードです。
'(1)
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
objStartFolder = "D:\\test"
Set objFolder = objFSO.GetFolder(objStartFolder)
Set colFiles = objFolder.Files
fileName = ""
maxDate = 0
'(2)
'更新日が最も新しいファイルのファイル名を取得
For Each objFile in colFiles
If objFile.DateLastModified > maxDate Then
maxDate = objFile.DateLastModified
fileName = objFile.Name
End If
Next
'(3)
'ファイルコピー(ただし、更新日が最も新しいファイルは除外)
For Each objFile in colFiles
If objFile.Name <> fileName Then
objFile.Copy("D:\\test\\bak\\" + objFile.Name)
End If
Next
'(4)
'ファイル削除(ただし、更新日が最も新しいファイルは除外)
For Each objFile in colFiles
If objFile.Name <> fileName Then
objFile.Delete
End If
Next
No.2
- 回答日時:
MOVEを使わず、お書きのように2ステップに分けると、(1)と(2)のちょうど間のタイミングでファイルが出来ると、コピーされずに削除されるファイルが出来てしまいますが、そういう可能性はないですか?
MOVEが危険というのをどこで読んだか知りませんが、デマでしょう。
cd /d D:\test
for /f "skip=1" %%F in ('dir /b /o-d CS_???.txt') do copy %%F D:\test\bkp
for /f "skip=1" %%F in ('dir /b /o-d CS_???.txt') do del %%F
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) 2つのマクロを連続して動かしたい 3 2022/09/20 23:46
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Excel(エクセル) パスワード付きExcelブックについて 4 2022/06/02 21:34
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
フォルダ内の更新日時が一番新...
-
【VBScript】※渡したい変数のみ...
-
シェルスクリプトでファイル名...
-
コマンドプロンプトでファイル...
-
ファイル名の頭5桁と同名のフォ...
-
サブフォルダからファイルをコ...
-
ExcelVBAのDirでスペース含むフ...
-
ファイル名を一括してリネーム...
-
ftp処理でmove(移動)を行いたい
-
高度なバッチファイル作成方法
-
aタグのhrefにネットワークパス...
-
[DOS] コピー先に同じファイル...
-
バッチファイルで、iniファイル...
-
xcopyによるフォルダコピー
-
Visual C++ 2008 Express Editi...
-
バッチファイルの繰り返し処理...
-
自動化のソフトの作り方を教え...
-
バッチファイル
-
バッチ処理で16進数でファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
バッチファイルで、iniファイル...
-
コマンドプロンプトでファイル...
-
ftp処理でmove(移動)を行いたい
-
コマンドプロンプトで変数が数...
-
ExcelVBAのDirでスペース含むフ...
-
[DOS] コピー先に同じファイル...
-
ファイル名の頭5桁と同名のフォ...
-
サブフォルダからファイルをコ...
-
フォルダ内の更新日時が一番新...
-
.batでファイル名から抽出して...
-
access,vbaでフォルダ内のファ...
-
バッチファイルで同一フォルダ...
-
バッチコマンドでファイル名の...
-
Windowsコマンドプロンプトで、...
-
スタートアップのファイルをバ...
-
ファイル名に ” を使うと エク...
-
ファイル名を該当フォルダ内か...
-
aタグのhrefにネットワークパス...
-
【DOSバッチ開発】末尾のタブの...
おすすめ情報