【.cmd】 バッチファイルスクリプト %15 【.bat】 (819レス)
【.cmd】 バッチファイルスクリプト %15 【.bat】 http://mevius.5ch.net/test/read.cgi/tech/1663153441/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
461: デフォルトの名無しさん [sage] 2023/10/13(金) 17:19:46.92 ID:5yGgcXlN 「''」と「"」を見間違えてるのでは http://mevius.5ch.net/test/read.cgi/tech/1663153441/461
462: デフォルトの名無しさん [] 2023/10/29(日) 22:58:43.01 ID:4fxrkRUI 環境変数を;区切りで改行して出力したくて for /F "delims=;" %i in ("%PATH%") do echo %i としたのですが最初の一つしか出力されません 何がダメなんでしょうか... http://mevius.5ch.net/test/read.cgi/tech/1663153441/462
463: デフォルトの名無しさん [sage] 2023/10/30(月) 00:54:06.32 ID:S4fhwBsv ダブルクォーテーションで囲まれた"%PATH%"が1つの引数としてForに渡されて1つ目の区切り文字に達するまでを出力してるからそうなる 1つずつ取り出したいならダブルクォーテーションを消せば良いがそれだと半角スペースも区切り文字に判定されるから 簡単にやろうと思ったらまず半角スペースを別の文字に置換してからダブルクォーテーション無しで渡してその後半角スペースを元に戻すとかかな http://mevius.5ch.net/test/read.cgi/tech/1663153441/463
464: デフォルトの名無しさん [sage] 2023/10/30(月) 01:46:36.18 ID:dhg2pdyL "%PATH%"が一行なのでforループも1回しか繰り返さないってだけ http://mevius.5ch.net/test/read.cgi/tech/1663153441/464
465: デフォルトの名無しさん [sage] 2023/10/30(月) 02:13:56.37 ID:dhg2pdyL delimsの区切り記号指定は、 for /F "tokens=1-3 delims=;" %i in ("%PATH%") do echo %i,%j,%k とか1行の中で複数項目に分ける場合に使う 区切り記号でループさせることは不可能 http://mevius.5ch.net/test/read.cgi/tech/1663153441/465
466: デフォルトの名無しさん [sage] 2023/10/30(月) 03:27:22.35 ID:dhg2pdyL 興が乗ったので作ってみた @echo off SETLOCAL EnableDelayedExpansion SET LF=^ SET splitted_path=%PATH:;=!LF!% for /f "tokens=*" %%i in ("!splitted_path!") do echo,%%i http://mevius.5ch.net/test/read.cgi/tech/1663153441/466
467: デフォルトの名無しさん [sage] 2023/10/30(月) 06:58:07.09 ID:EuHHvGeq バッチと関係ないけどpath変数のフォルダ名に ;文字が入ってたらwindowsの動作はどうなるんだろう "で囲めばいいだけなのかな http://mevius.5ch.net/test/read.cgi/tech/1663153441/467
468: デフォルトの名無しさん [sage] 2023/10/30(月) 13:19:36.99 ID:dhg2pdyL 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! http://mevius.5ch.net/test/read.cgi/tech/1663153441/468
469: デフォルトの名無しさん [] 2023/10/30(月) 23:23:37.40 ID:oqTBGQIx 皆さんありがとうございます参考になりました。 気軽に使いたかったのでこんな感じで雑に実現しました @echo off for %%i in ("%PATH:;=";"%") do echo %%i pause 毎回環境変数ウィンドウ開くの面倒だからcliで見やすく確認できないかなーと気軽に始めたのですがbatスクリプト難しいですね 遅延展開とか初めて聞きましたw http://mevius.5ch.net/test/read.cgi/tech/1663153441/469
470: デフォルトの名無しさん [sage] 2023/10/31(火) 06:54:11.36 ID:9EMrUdB9 遅延にしたら!が変わる !があると^も変わる http://mevius.5ch.net/test/read.cgi/tech/1663153441/470
471: デフォルトの名無しさん [sage] 2023/10/31(火) 07:18:54.11 ID:1/1CCAX6 バッチは不毛すぎる 使うのは最小限に留めろ http://mevius.5ch.net/test/read.cgi/tech/1663153441/471
472: デフォルトの名無しさん [sage] 2023/10/31(火) 07:44:42.03 ID:/7M4GG46 頑張りすぎると無毛になる http://mevius.5ch.net/test/read.cgi/tech/1663153441/472
473: デフォルトの名無しさん [sage] 2023/10/31(火) 08:59:44.07 ID:5Lja4y81 おかえり http://mevius.5ch.net/test/read.cgi/tech/1663153441/473
474: デフォルトの名無しさん [sage] 2023/11/01(水) 10:36:13.57 ID:QIr7Aj5s バッチファイルは縛りプレイが好きな人にしか向かないよ http://mevius.5ch.net/test/read.cgi/tech/1663153441/474
475: デフォルトの名無しさん [sage] 2023/11/12(日) 10:36:55.29 ID:8jJHTm3/ batファイルの処理が終わったらスマホに何らかの通知を送りたいんですが何かいい方法は無いですか? http://mevius.5ch.net/test/read.cgi/tech/1663153441/475
476: デフォルトの名無しさん [sage] 2023/11/12(日) 13:00:47.64 ID:9doZQWI1 SMS送信するWebAPI実行 http://mevius.5ch.net/test/read.cgi/tech/1663153441/476
477: デフォルトの名無しさん [sage] 2023/11/12(日) 18:58:13.28 ID:aZ7/2ZLa NET SEND http://mevius.5ch.net/test/read.cgi/tech/1663153441/477
478: デフォルトの名無しさん [sage] 2023/11/19(日) 15:27:06.49 ID:tEMsHOKq >>476 >>477 どちらも難しそうだったのでPowerShellでGmailを送るやり方にしました http://mevius.5ch.net/test/read.cgi/tech/1663153441/478
479: デフォルトの名無しさん [sage] 2023/12/11(月) 17:33:41.74 ID:DuarkpA3 習作で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に固定されてしまい、 判定を上手く行うことが出来ずにいます 稚拙な質問でお恥ずかしいのですがどのように修正すれば良いでしょうか http:
//mevius.5ch.net/test/read.cgi/tech/1663153441/479
480: デフォルトの名無しさん [sage] 2023/12/11(月) 21:12:00.54 ID:WKo0W+M9 >>479 お前がなぜレスを貰えないのかchatgptに聞いてこい http://mevius.5ch.net/test/read.cgi/tech/1663153441/480
481: デフォルトの名無しさん [sage] 2023/12/11(月) 21:23:41.62 ID:ZQU2Csd1 >>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の指定ないけどそれは問題ない? http://mevius.5ch.net/test/read.cgi/tech/1663153441/481
482: デフォルトの名無しさん [sage] 2023/12/11(月) 22:30:44.45 ID:TXSKL9RJ for文を初めて使ったものでスレ汚し紛いな質問で申し訳ないです setlocal enabledelayedexpansionを利用して手直しし、 希望通りの結果を出力できました。ありがとうございました http://mevius.5ch.net/test/read.cgi/tech/1663153441/482
483: デフォルトの名無しさん [] 2023/12/12(火) 18:16:58.21 ID:e+gu1Rew こんな感じでperl起動するとして、このときwindows terminal(設定によってはコマンドプロンプト)の新しいウィンドウが開かれてperlのコードが実行されますが、既に開いているwindows terminal内で新しいタブを開いて実行できないでしょうか? perl "aaa.txt" exit /B http://mevius.5ch.net/test/read.cgi/tech/1663153441/483
484: デフォルトの名無しさん [] 2023/12/12(火) 18:55:34.45 ID:e+gu1Rew 書き忘れました バッチファイルの実行はコマンドプロンプト内ではなく、バッチファイルのアイコンをダブルクリック(おそらくエクスプローラーで実行)することを前提にしてます http://mevius.5ch.net/test/read.cgi/tech/1663153441/484
485: デフォルトの名無しさん [sage] 2023/12/12(火) 20:27:32.49 ID:I4UWTUvH >>483 11のターミナルのタブはバグなのか仕様なのか誰も判らんから答えようがないよ どうして11みたいな糞を恥ずかしげもなくリリースしたのかMSに聞いてこいよ http://mevius.5ch.net/test/read.cgi/tech/1663153441/485
486: デフォルトの名無しさん [sage] 2023/12/17(日) 11:53:39.09 ID:zJzmsCBl >>483 batではなくショートカット作って プロパティのリンク先をwt perl "スクリプトのフルパス" 作業フォルダーをスクリプトのあるフォルダ でよくない? http://mevius.5ch.net/test/read.cgi/tech/1663153441/486
487: デフォルトの名無しさん [] 2024/01/18(木) 19:51:19.47 ID:WajCwGEB シンプルに指定のフォルダ内へ存在する、特定のフォルダとファイルをバッチで一括削除する場合、そう記述すれば良いでしょうか C:\AAA\BBB\CCCの、CCCの中にある フォルダ1、フォルダ2、ファイル1、ファイル2、ファイル3・・・をまとめて削除したいのです バッチファイルでCCleaner v5.63の対象リストみたいな運用をしたく思っています http://mevius.5ch.net/test/read.cgi/tech/1663153441/487
488: デフォルトの名無しさん [sage] 2024/01/18(木) 20:05:52.37 ID:lPYOY/79 >シンプルに シンプルかーよっしゃ! >指定のフォルダ内へ存在する、特定のフォルダとファイルを へはどっちに掛かるの? >バッチで一括削除する バッチスレやしな >場合、 うん… >そう記述すれば良いでしょうか そうやな、 まずChatGPTにその質問内容が人間に判る文章になってるか添削してもらいな http://mevius.5ch.net/test/read.cgi/tech/1663153441/488
489: デフォルトの名無しさん [sage] 2024/01/18(木) 21:24:27.19 ID:fl7npJfZ 消したいファイルやフォルダを列挙するのが一番シンプル フォルダ内を全部消したいのなら rmdir /s /q ただし指定したフォルダも消えるので再度作る必要はある http://mevius.5ch.net/test/read.cgi/tech/1663153441/489
490: デフォルトの名無しさん [] 2024/01/18(木) 21:50:17.22 ID:WajCwGEB >>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 的な箇条書きで良かったりしますか? http://mevius.5c
h.net/test/read.cgi/tech/1663153441/490
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 329 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.022s