【.cmd】 バッチファイルスクリプト %15 【.bat】 (819レス)
上下前次1-新
464: 2023/10/30(月)01:46 ID:dhg2pdyL(1/4) AAS
"%PATH%"が一行なのでforループも1回しか繰り返さないってだけ
465: 2023/10/30(月)02:13 ID:dhg2pdyL(2/4) AAS
delimsの区切り記号指定は、
for /F "tokens=1-3 delims=;" %i in ("%PATH%") do echo %i,%j,%k
とか1行の中で複数項目に分ける場合に使う
区切り記号でループさせることは不可能
466: 2023/10/30(月)03:27 ID:dhg2pdyL(3/4) AAS
興が乗ったので作ってみた
@echo off
SETLOCAL EnableDelayedExpansion
SET LF=^
SET splitted_path=%PATH:;=!LF!%
for /f "tokens=*" %%i in ("!splitted_path!") do echo,%%i
467: 2023/10/30(月)06:58 ID:EuHHvGeq(1) AAS
バッチと関係ないけどpath変数のフォルダ名に
;文字が入ってたらwindowsの動作はどうなるんだろう
"で囲めばいいだけなのかな
468: 2023/10/30(月)13:19 ID:dhg2pdyL(4/4) AAS
for文も不要だった
@echo off
setlocal EnableDelayedExpansion
for /f "delims=N" %%i in ('cmd /u /c echo 不') do set CR=%%i
set LF=^
SET splitted_path=%PATH:;=!CR!!LF!%
echo,!splitted_path!
469: 2023/10/30(月)23:23 ID:oqTBGQIx(1) AAS
皆さんありがとうございます参考になりました。
気軽に使いたかったのでこんな感じで雑に実現しました
@echo off
for %%i in ("%PATH:;=";"%") do echo %%i
pause
毎回環境変数ウィンドウ開くの面倒だからcliで見やすく確認できないかなーと気軽に始めたのですがbatスクリプト難しいですね
遅延展開とか初めて聞きましたw
470: 2023/10/31(火)06:54 ID:9EMrUdB9(1) AAS
遅延にしたら!が変わる
!があると^も変わる
471: 2023/10/31(火)07:18 ID:1/1CCAX6(1) AAS
バッチは不毛すぎる
使うのは最小限に留めろ
472: 2023/10/31(火)07:44 ID:/7M4GG46(1) AAS
頑張りすぎると無毛になる
473: 2023/10/31(火)08:59 ID:5Lja4y81(1) AAS
おかえり
474: 2023/11/01(水)10:36 ID:QIr7Aj5s(1) AAS
バッチファイルは縛りプレイが好きな人にしか向かないよ
475: 2023/11/12(日)10:36 ID:8jJHTm3/(1) AAS
batファイルの処理が終わったらスマホに何らかの通知を送りたいんですが何かいい方法は無いですか?
476(1): 2023/11/12(日)13:00 ID:9doZQWI1(1) AAS
SMS送信するWebAPI実行
477(1): 2023/11/12(日)18:58 ID:aZ7/2ZLa(1) AAS
NET SEND
478: 2023/11/19(日)15:27 ID:tEMsHOKq(1) AAS
>>476
>>477
どちらも難しそうだったのでPowerShellでGmailを送るやり方にしました
479(2): 2023/12/11(月)17:33 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: 2023/12/11(月)21:12 ID:WKo0W+M9(1) AAS
>>479
お前がなぜレスを貰えないのかchatgptに聞いてこい
481(1): 2023/12/11(月)21:23 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: 2023/12/11(月)22:30 ID:TXSKL9RJ(1) AAS
for文を初めて使ったものでスレ汚し紛いな質問で申し訳ないです
setlocal enabledelayedexpansionを利用して手直しし、
希望通りの結果を出力できました。ありがとうございました
483(2): 2023/12/12(火)18:16 ID:e+gu1Rew(1/2) AAS
こんな感じでperl起動するとして、このときwindows terminal(設定によってはコマンドプロンプト)の新しいウィンドウが開かれてperlのコードが実行されますが、既に開いているwindows terminal内で新しいタブを開いて実行できないでしょうか?
perl "aaa.txt"
exit /B
484: 2023/12/12(火)18:55 ID:e+gu1Rew(2/2) AAS
書き忘れました
バッチファイルの実行はコマンドプロンプト内ではなく、バッチファイルのアイコンをダブルクリック(おそらくエクスプローラーで実行)することを前提にしてます
485: 2023/12/12(火)20:27 ID:I4UWTUvH(1) AAS
>>483
11のターミナルのタブはバグなのか仕様なのか誰も判らんから答えようがないよ
どうして11みたいな糞を恥ずかしげもなくリリースしたのかMSに聞いてこいよ
486: 2023/12/17(日)11:53 ID:zJzmsCBl(1) AAS
>>483
batではなくショートカット作って
プロパティのリンク先をwt perl "スクリプトのフルパス"
作業フォルダーをスクリプトのあるフォルダ
でよくない?
487: 2024/01/18(木)19:51 ID:WajCwGEB(1/3) AAS
シンプルに指定のフォルダ内へ存在する、特定のフォルダとファイルをバッチで一括削除する場合、そう記述すれば良いでしょうか
C:\AAA\BBB\CCCの、CCCの中にある
フォルダ1、フォルダ2、ファイル1、ファイル2、ファイル3・・・をまとめて削除したいのです
バッチファイルでCCleaner v5.63の対象リストみたいな運用をしたく思っています
488: 2024/01/18(木)20:05 ID:lPYOY/79(1) AAS
>シンプルに
シンプルかーよっしゃ!
>指定のフォルダ内へ存在する、特定のフォルダとファイルを
へはどっちに掛かるの?
>バッチで一括削除する
バッチスレやしな
>場合、
うん…
>そう記述すれば良いでしょうか
そうやな、
まずChatGPTにその質問内容が人間に判る文章になってるか添削してもらいな
489(1): 2024/01/18(木)21:24 ID:fl7npJfZ(1) AAS
消したいファイルやフォルダを列挙するのが一番シンプル
フォルダ内を全部消したいのなら rmdir /s /q
ただし指定したフォルダも消えるので再度作る必要はある
490: 2024/01/18(木)21:50 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 ID:WajCwGEB(3/3) AAS
これまでよく運用してきたアットリブやサービスなどは、例を挙げると
attrib +s +h C:\Users\xxxxxx\ntuser.dat
のたった一行で完結していました
ファイルディレクトリの削除も、特別な条件を付与しない場合は上記と似たようなものでしたかね
492(2): 2024/01/18(木)22:00 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 ID:bHDC7nyS(1) AAS
>>492
望むバッチが作れました
有難うございました
上下前次1-新書関写板覧索設栞歴
あと 326 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.017s