【.cmd】 バッチファイルスクリプト %15 【.bat】 (819レス)
上下前次1-新
504(1): 2024/02/16(金)14:00 ID:xcbCRr3h(1) AAS
>>481
%errorlevel% という環境変数モドキのないdosでも使える
if not errorlevel 1 が正解
505(1): 2024/02/16(金)15:31 ID:Pal4p53G(1) AAS
フォルダがいくつかあって
フォルダの名前が年月日で
「あれYYYYMMDD」形式になています
最新の日付フォルダの中身の特定のファイルだけを
別フォルダにコピーする
バッチファイル可能ですか?
506: 2024/02/16(金)16:31 ID:1D5G9s1W(1/2) AAS
>>504cmd /c exit -1
if not errorlevel 1 echo OK
507: 2024/02/16(金)16:34 ID:1D5G9s1W(2/2) AAS
途中で間違って書き込んじゃった。
戻り値が負数の場合に注意が必要。
508: 2024/03/15(金)00:37 ID:exMGzLtn(1) AAS
住人いるのか?
509: 2024/03/15(金)21:32 ID:cEgPx2Y0(1) AAS
いないよ
510(1): 2024/03/15(金)21:48 ID:8BVQzeBd(1/2) AAS
>505
誰か教えて
511(1): 2024/03/15(金)21:54 ID:nVSr20GQ(1) AAS
>>510
まずフォルダ名からYYYYMMDDの部分を抜き出して
フォルダをしらみつぶしに大小比較していく
一番大きい数値のフォルダはこれで特定できる
その中身の特定のファイルはどういった特定なのかで実現できるかどうか分かれる
512(1): 2024/03/15(金)21:59 ID:8BVQzeBd(2/2) AAS
>>511
特定のファイルとは
特定のファイル名です
全てのフォルダに同じファイル名のファイルが入ってる
513: 2024/03/15(金)22:58 ID:XS7vFeOB(1) AAS
>>512
こんなかんじ?
md あれ20240313 あれ20240314 あれ20240315 あれ20240316 dest
call>あれ20240316\特定のファイル
setlocal enabledelayedexpansion
call>are_list.txt
for /f %%a in ('dir /ad /b "あれ*"') do (
set "are=%%~a"
echo !are:~-8,8!>>are_list.txt
)
endlocal
sort /r are_list.txt /o are_list.txt
set /p target=<are_list.txt
copy あれ%target%\特定のファイル dest
514: 2024/03/16(土)08:55 ID:PUBVa+tA(1) AAS
FOR /F %%i IN ('dir /b /o-n あれ*') DO (
copy "%%i\特定のファイル" "別フォルダ" & goto :eof)
515: 2024/03/16(土)09:42 ID:yhWVSGDf(1) AAS
for /d %%i in (あれ*) do set フォルダ=%%i
copy "%フォルダ%\特定のファイル" "別フォルダ"
516(1): 2024/04/08(月)22:28 ID:tYLSO2Xj(1) AAS
※スレ違いで誘導していただきました
2chスレ:tech
コマンドプロンプト(robocopy)について
Windows 11 Pro 23H2です
図1のように、robocopyで「フォルダA」を「フォルダB」へミラーコピーする実行ファイルを作成しました
(フォルダA)空
(フォルダB)ファイル.txtのみ
図2の削除予定?フォルダやファイルを非表示にしたいのですが、
それらしきログオプションが分かりませんでした
(図1)画像リンク
(図2)画像リンク
よろしくお願いいたします
517(1): sage 2024/04/09(火)14:00 ID:Ugima7Hm(1) AAS
>>516
/lじゃなくて/quitはどう?
518(1): 2024/04/09(火)14:46 ID:A/PWQBtx(1) AAS
HELP ATTRIB
519(1): 2024/04/09(火)20:18 ID:ad5KI3J5(1) AAS
削除予定なら削除してからコピーを実行したら表示されないんじゃね
520(1): 2024/04/09(火)21:46 ID:yR8KPsJp(1) AAS
/XF ファイル.txt
521: 2024/04/10(水)19:52 ID:sNhBgYIO(1) AAS
>>517-520
ありがとうございます
>>517さんの /quit で意図する動作ができました!
>>518さんの事前削除もいいですね
画像リンク
ありがとうございました
522(1): 2024/04/24(水)02:18 ID:K1wg6IoP(1) AAS
バッチファイルでExecutablePathにToolsを含むzebedee.exeというプロセスをkillしたいのだが、
for /f "usebackq tokens=2 delims==" %%A in (`WMIC PROCESS WHERE "Name='zebedee.exe' and ExecutablePath like '%%Tools%%'" get ProcessId /VALUE ^| find "="`) do (
taskkill /F /pid %%A
)
だと
D:\Tools\zebedee>(
taskkill /F /pid 21252
)
エラー: 無効なクエリです
となってしまう。
for /f "usebackq tokens=2 delims==" %%A in (`WMIC PROCESS WHERE "Name='zebedee.exe' and ExecutablePath like '%%Tools%%'" get ProcessId /VALUE ^| find "="`) do (
set PID=%%A
)
taskkill /F /pid %PID%
だと成功する。
forの中にtaskkillて書けないの?
「エラー: 無効なクエリです」てWMICのエラーだから、forとWMICとtaskkillの問題?
523(1): 2024/04/24(水)12:53 ID:cg/GbNoZ(1) AAS
>>522
WMICはパイプを使うと改行がCR CR LFとなって、%%A に正しく設定できていないのでだめっぽい。
SETするとCRが削除されてうまくいくようです。
というわけで、いったんリダイレクトしてファイルにするとよいでしょう。
^| find "="
↓
^>T ^&^& find "=" T
524: 2024/04/24(水)19:27 ID:zTq4mcuG(1) AAS
前にquery userってコマンドの出力を変数に入れたかったんだけど
出力に文字'>'が入っててうまく取り込めなくてその時は結局vbsだかで取り込んだ
バッチだけでやる方法ってあったのかな
525(1): 2024/04/26(金)01:53 ID:WIIBP3hh(1/2) AAS
>>523
for /f %%A in ('wmic process where ^( Name like 'zebedee.exe' and ExecutablePath like '%%Tools%%'^) get processid') do (
taskkill /F /pid %%A
)
これで出来た。エラーするけど。
なんでMSのコマンドって不要なものを消せないのかね。
Linuxだと情報だけを表示するオプションがあるのに。
526: 2024/04/26(金)06:34 ID:WIIBP3hh(2/2) AAS
>>525
forとtaskkillで頑張らなくても
wmic process where ( Name like 'zebedee.exe' and ExecutablePath like '%%Tools%%') delete
でよかったんだ。
527: 2024/04/28(日)21:55 ID:zlR73q8o(1) AAS
スレ立てあらしスクリプト対抗age
528: 2024/05/15(水)15:54 ID:7SsR7Bys(1) AAS
コマンドラインからスリープ状態にするやり方調べてたけど意外と面倒くさいんだな
スリープじゃなくて休止になったり管理者権限が必要だったり
529: 2024/05/15(水)16:36 ID:7ab9f7zE(1) AAS
powershellにおまかせするのが楽みたいだね
530(1): 2024/06/12(水)21:35 ID:XPCO6cU9(1/2) AAS
共有フォルダの特定のファイルが不定期に更新されるので
過去のファイルを残すために
別のフォルダに保存しておきたい
更新の都度=全部は無理としても毎日1回はコピーしたい
元ファイル名にコピーする日付と時刻を追加したファイル名で
数日更新しない時もあるから
更新されてなかったらコピーしたくない
そんなバッチファイル可能?
毎日1回はタスクスケジューラで設定
531: 2024/06/12(水)22:35 ID:09UxvqoI(1/2) AAS
>>530
両方のファイルのタイムスタンプを比較すればいいかな
for /f "tokens=*" %%i in ("foo.txt") do echo %ti
新しいかどうかじゃなくて一致するかしないかで十分だと思う
dir /t "foo.txt"
でも更新日付は求められる
xcopy "foo.txt" backup_folder /d
でも更新されたファイルのバックアップはできるが同じファイル名となる
まあ頑張ってくれ
532(1): 2024/06/12(水)22:36 ID:09UxvqoI(2/2) AAS
ティルダが抜けてた
for /f "tokens=*" %%i in ("foo.txt") do echo %~ti
533(1): 2024/06/12(水)23:08 ID:XPCO6cU9(2/2) AAS
>>532
明日試します
ファイル名は日付時刻だけなら何とかなりそう
元ファイル名に連結がうまくできない
上下前次1-新書関写板覧索設栞歴
あと 286 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.024s