【.cmd】 バッチファイルスクリプト %15 【.bat】 (843レス)
1-

479
(2): デフォルトの名無しさん [sage] 2023/12/11(月) 17:33:41.74 ID:DuarkpA3(1) AAS
習作でlog1.txtに格納されている文字列を1行ずつlog2.txtの中に存在しているかチェックしたいのですが、

@echo off
for /f %%a in (log1.txt) do (
set line=%%a
find "%%a" log2.txt
if %errorlevel% == "0" (
echo OK >> kekka.txt
) else (
echo NG >> kekka.txt
)
)

findで返ってくる値が0に固定されてしまい、
判定を上手く行うことが出来ずにいます
稚拙な質問でお恥ずかしいのですがどのように修正すれば良いでしょうか
480: デフォルトの名無しさん [sage] 2023/12/11(月) 21:12:00.54 ID:WKo0W+M9(1) AAS
>>479
お前がなぜレスを貰えないのかchatgptに聞いてこい
481
(1): デフォルトの名無しさん [sage] 2023/12/11(月) 21:23:41.62 ID:ZQU2Csd1(1) AAS
>>479
いちばん手っ取り早いのはsetlocal enabledelayedexpansionを使うこと

@echo off
setlocal enabledelayedexpansion
for /f %%a in (log1.txt) do (
find "%%a" log2.txt >nul 2>nul
if "!errorlevel!" == "0" (echo OK) else (echo NG)
)
endlocal

遅延展開で調べてみて
ただforにdelimsとかtokensの指定ないけどそれは問題ない?
482: デフォルトの名無しさん [sage] 2023/12/11(月) 22:30:44.45 ID:TXSKL9RJ(1) AAS
for文を初めて使ったものでスレ汚し紛いな質問で申し訳ないです
setlocal enabledelayedexpansionを利用して手直しし、
希望通りの結果を出力できました。ありがとうございました
483
(2): デフォルトの名無しさん [] 2023/12/12(火) 18:16:58.21 ID:e+gu1Rew(1/2) AAS
こんな感じでperl起動するとして、このときwindows terminal(設定によってはコマンドプロンプト)の新しいウィンドウが開かれてperlのコードが実行されますが、既に開いているwindows terminal内で新しいタブを開いて実行できないでしょうか?

perl "aaa.txt"
exit /B
484: デフォルトの名無しさん [] 2023/12/12(火) 18:55:34.45 ID:e+gu1Rew(2/2) AAS
書き忘れました
バッチファイルの実行はコマンドプロンプト内ではなく、バッチファイルのアイコンをダブルクリック(おそらくエクスプローラーで実行)することを前提にしてます
485: デフォルトの名無しさん [sage] 2023/12/12(火) 20:27:32.49 ID:I4UWTUvH(1) AAS
>>483
11のターミナルのタブはバグなのか仕様なのか誰も判らんから答えようがないよ
どうして11みたいな糞を恥ずかしげもなくリリースしたのかMSに聞いてこいよ
486: デフォルトの名無しさん [sage] 2023/12/17(日) 11:53:39.09 ID:zJzmsCBl(1) AAS
>>483
batではなくショートカット作って
プロパティのリンク先をwt perl "スクリプトのフルパス"
作業フォルダーをスクリプトのあるフォルダ
でよくない?
487: デフォルトの名無しさん [] 2024/01/18(木) 19:51:19.47 ID:WajCwGEB(1/3) AAS
シンプルに指定のフォルダ内へ存在する、特定のフォルダとファイルをバッチで一括削除する場合、そう記述すれば良いでしょうか

C:\AAA\BBB\CCCの、CCCの中にある
フォルダ1、フォルダ2、ファイル1、ファイル2、ファイル3・・・をまとめて削除したいのです

バッチファイルでCCleaner v5.63の対象リストみたいな運用をしたく思っています
488: デフォルトの名無しさん [sage] 2024/01/18(木) 20:05:52.37 ID:lPYOY/79(1) AAS
>シンプルに
シンプルかーよっしゃ!
>指定のフォルダ内へ存在する、特定のフォルダとファイルを
へはどっちに掛かるの?
>バッチで一括削除する
バッチスレやしな
>場合、
うん…
>そう記述すれば良いでしょうか
そうやな、
まずChatGPTにその質問内容が人間に判る文章になってるか添削してもらいな
489
(1): デフォルトの名無しさん [sage] 2024/01/18(木) 21:24:27.19 ID:fl7npJfZ(1) AAS
消したいファイルやフォルダを列挙するのが一番シンプル
フォルダ内を全部消したいのなら rmdir /s /q
ただし指定したフォルダも消えるので再度作る必要はある
490: デフォルトの名無しさん [] 2024/01/18(木) 21:50:17.22 ID:WajCwGEB(2/3) AAS
>>489
早々に有難うございます
ネットにある指南もかなり事前チェックした上での投稿ですが、断片的な内容が多く、それらをコピペして調整せども上手くいかなかったものでして

ひょっとすると@echo offのあとに
del C:\AAA\BBB\CCC\ファイル1
del C:\AAA\BBB\CCC\ファイル2
del C:\AAA\BBB\CCC\ファイル3
rmdir /s /q C:\AAA\BBB\CCC\DDD
rmdir /s /q C:\AAA\BBB\CCC\EEE
rmdir /s /q C:\AAA\BBB\CCC\FFF
exit

的な箇条書きで良かったりしますか?
491: デフォルトの名無しさん [] 2024/01/18(木) 21:54:35.77 ID:WajCwGEB(3/3) AAS
これまでよく運用してきたアットリブやサービスなどは、例を挙げると
attrib +s +h C:\Users\xxxxxx\ntuser.dat
のたった一行で完結していました
ファイルディレクトリの削除も、特別な条件を付与しない場合は上記と似たようなものでしたかね
492
(2): デフォルトの名無しさん [sage] 2024/01/18(木) 22:00:03.62 ID:MX5L5JEY(1) AAS
pushd C:\AAA\BBB\CCC
rd /s/q フォルダ1 フォルダ2 ファイル1 ファイル2 ファイル3・・
popd

…フォルダは消せてもファイル消せないか。じゃあ、

pushd C:\AAA\BBB\CCC
rd /s/q フォルダ1 フォルダ2 ファイル1 ファイル2 ファイル3・・
del /f フォルダ1 フォルダ2 ファイル1 ファイル2 ファイル3・・
popd

エラーは無視w
493: デフォルトの名無しさん [] 2024/01/19(金) 05:19:53.22 ID:bHDC7nyS(1) AAS
>>492
望むバッチが作れました
有難うございました
494: デフォルトの名無しさん [sage] 2024/01/19(金) 06:08:19.50 ID:xbWxkRsK(1) AAS
>>492
フォルダ1とフォルダ2を一つの命令で消すことは出来ないのでは?
495
(2): デフォルトの名無しさん [sage] 2024/01/23(火) 21:55:09.85 ID:ke6XWARZ(1/2) AAS
バッチファイルから VS Code を起動しようと start で
start ”C:\apps\VSCode\Code.exe”
のようにすると、Code.exe の終了待ちになってしまいます
実行後は普通の exe のようにプロンプトに戻ってきて欲しいのですが、
バッチファイルでどうにかできるものでしょうか?
496
(1): デフォルトの名無しさん [sage] 2024/01/23(火) 23:07:46.88 ID:fGdUtoWj(1) AAS
>>495
bin\code.cmdから起動するか
set ELECTRON_NO_ATTACH_CONSOLE=true
すればすぐ戻る
497: デフォルトの名無しさん [sage] 2024/01/23(火) 23:27:45.51 ID:ke6XWARZ(2/2) AAS
>>496
ありがとうございました
期待通りの動作になりました

微妙に訂正 >495 は start ”” ”C:\apps\VSCode\Code.exe” と書くべきでした
498: デフォルトの名無しさん [sage] 2024/02/02(金) 14:12:59.14 ID:/quSrI1G(1/2) AAS
バッチでディレクトリの中身のファイルを別のディレクトリにコピーしたい
大量にあるから更新時刻の新しいのだけコピーしたい
robocopy以外のコマンドで可能?
499
(1): デフォルトの名無しさん [sage] 2024/02/02(金) 19:39:01.90 ID:wG6y7v1N(1) AAS
xcopy /d
では対応できない案件?
他には
forfiles
を組み合わせるとかあるけど、そもそも robocopy を避ける理由が
分からないと勧めづらい
500: デフォルトの名無しさん [sage] 2024/02/02(金) 19:55:07.14 ID:SlEtxLWX(1) AAS
バッチで時刻見ながら1個1個コピーとか…可能
501: デフォルトの名無しさん [sage] 2024/02/02(金) 20:29:32.82 ID:/quSrI1G(2/2) AAS
>>499
感謝
robocopyとcopyしか考えてなかった
robocopyはオプション間違えると消えるのが恐くて
502: デフォルトの名無しさん [sage] 2024/02/02(金) 23:09:26.35 ID:oSMWA/4/(1) AAS
こういうの使った方が早いかもよ
外部リンク[html]:schinagl.priv.at
503: デフォルトの名無しさん [sage] 2024/02/03(土) 11:35:25.52 ID:OZed/uKu(1) AAS
NASやファイルサーバの機能の重複除去を有効にすると文字通り重複してるファイルは勝手にファイルシステム内で統合されるから気にする必要事なくなるよ
1-
あと 340 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.013s