【.cmd】 バッチファイルスクリプト %14 【.bat】

■ このスレッドは過去ログ倉庫に格納されています
2020/08/15(土) 07:00:26.64ID:f3kW5kCx
拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです

※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう

過去スレ
%13 http://mevius.2ch.net/test/read.cgi/tech/1542779527/
%12 http://mevius.2ch.net/test/read.cgi/tech/1489207631/
%11 http://echo.2ch.net/test/read.cgi/tech/1424858999/
%10 http://peace.2ch.net/test/read.cgi/tech/1374205515/
%9 http://toro.2ch.net/test/read.cgi/tech/1335015478/
%8 http://toro.2ch.net/test/read.cgi/tech/1315844420/
%7 http://hibari.2ch.net/test/read.cgi/tech/1298873550/
%6 http://hibari.2ch.net/test/read.cgi/tech/1277465356/
%5 http://pc12.2ch.net/test/read.cgi/tech/1242268171/
%4 http://pc12.2ch.net/test/read.cgi/tech/1229955189/
%3 http://pc11.2ch.net/test/read.cgi/tech/1217860043/
%2 http://pc11.2ch.net/test/read.cgi/tech/1197881068/
【.cmd】 バッチファイルスクリプト %1 【.bat】
http://pc11.2ch.net/test/read.cgi/tech/1178281991/
バッチファイルプログラミング 3.bat
http://pc11.2ch.net/test/read.cgi/tech/1148485555/
バッチファイルプログラミング 2.bat
http://pc8.2ch.net/test/read.cgi/tech/1104911889/
バッチファイルプログラミング質問スレ
http://pc5.2ch.net/test/read.cgi/tech/1040614686/
757デフォルトの名無しさん
垢版 |
2022/04/26(火) 23:13:58.40ID:AEcCnDU9
フォルダの中にファイルが10個以上あったらタイムスタンプが一番古いファイルを削除する処理をバッチファイルでどう書くかどなたか教えろください。。
2022/04/26(火) 23:29:20.25ID:OAZlYJMq
>>757
ジャバスクリプト使え
2022/04/27(水) 01:07:40.77ID:c7tqZe1K
dirでソートしたのをforでskipしてdelすればいいんじゃね
2022/04/27(水) 01:13:28.18ID:4aF/byUR
バックアップファイルでも溜め込んでるのかな?
2022/04/27(水) 01:13:59.63ID:CxYG3qjN
pushd, popdは出口exitがたくさんあったり、あちこちgotoしたりすると
つじつまがあわなくなることがある
そういう時は%cd%でフォルダ位置を覚えておき、最後そこに戻すほうが気分的に楽
2022/04/27(水) 03:00:29.08ID:itKYtkFa
>>757
for /f "skip=9 delims=" %%a in ('dir /a-d /b /o-d') do del "%%a"
2022/04/27(水) 18:14:04.80ID:pviHRewB
>>757
Ruby で書いてみた。
DryRun なので、実際にはファイルは削除されません

require 'fileutils'

# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
dir_path = "C:/Users/Owner/Documents/test/*"

# そのディレクトリ内の全てのファイルパス・更新時刻を取得する。
# [ ファイルパス, 更新時刻 ]の配列の配列を戻す
def collect_filepaths_and_mtime( dir_path )
Dir.glob( dir_path )
.select { |full_path| File.file?( full_path ) } # ファイルのみ
.map { |full_path| [ full_path, File.stat( full_path ).mtime ] } # [ ファイルパス, 更新時刻 ]
end

temp_ary = collect_filepaths_and_mtime( dir_path )

if temp_ary.length >= 10
temp_ary.sort_by! { |ary| ary[ 1 ] } # 更新時刻の古い順でソート
# p temp_ary

FileUtils::DryRun.remove( temp_ary.first[ 0 ] ) # 削除
else
puts "ファイル数は#{ temp_ary.length } です。処理するファイルはありません!"
end
2022/04/29(金) 11:23:44.95ID:X7f5QGPR
powershell
gci -File | sort -P LastWriteTime -D | select -Skip 10 | %{ del $_.FullName -Fo}
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況