【.cmd】 バッチファイルスクリプト %15 【.bat】 (768レス)
前次1-
抽出解除 レス栞

112: デフォルトの名無しさん [sage] 2022/12/21(水) 22:08:11.62 ID:DgZmdBnN(1/3) AAS
上のは値の先頭が ; だと消える
eol^= にすればいい
下のは値の先頭が = だとその文字が消える
229: デフォルトの名無しさん [sage] 2023/03/10(金) 19:31:43.62 ID:hNo+M64i(1) AAS
要するに見ての通り他のコマンドからパイプで渡された標準入力をバッチファイルで受け取りたいと言う事でしょ
無理なんじゃね
401: デフォルトの名無しさん [sage] 2023/07/08(土) 10:18:28.62 ID:iRLmrC8y(1) AAS
いまさら何をいってもcmdは変わらん。署名が変わるだけ
ターミナルはwtが追加されたけど
417: デフォルトの名無しさん [sage] 2023/08/25(金) 01:13:18.62 ID:icN/kxtu(1) AAS
ハゲじゃない人は何を議論したいのか教えて下さい
481
(1): デフォルトの名無しさん [sage] 2023/12/11(月) 21:23:41.62 ID:ZQU2Csd1(1) AAS
>>479
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に固定されてしまい、
判定を上手く行うことが出来ずにいます
稚拙な質問でお恥ずかしいのですがどのように修正すれば良いでしょうか
いちばん手っ取り早いのは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の指定ないけどそれは問題ない?
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
523
(1): デフォルトの名無しさん [sage] 2024/04/24(水) 12:53:51.62 ID:cg/GbNoZ(1) AAS
>>522
522(1): デフォルトの名無しさん [] 2024/04/24(水) 02:18:02.70 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の問題?
WMICはパイプを使うと改行がCR CR LFとなって、%%A に正しく設定できていないのでだめっぽい。
SETするとCRが削除されてうまくいくようです。
というわけで、いったんリダイレクトしてファイルにするとよいでしょう。

^| find "="

^>T ^&^& find "=" T
610: デフォルトの名無しさん [sage] 2024/11/10(日) 14:06:03.62 ID:9SnRMU05(1/2) AAS
そりゃあ終了したら効果が無くなるんだから文法マニアくらいしか書かんだろう
623
(1): デフォルトの名無しさん [] 2024/11/11(月) 03:53:20.62 ID:vS/DyEQP(1) AAS
batというプログラミング初めてです。
初心者に良いサイト教えてください。
Windows 10です。
639: 638 [] 2024/12/11(水) 22:00:19.62 ID:y+gluRXv(2/2) AAS
自己解決しました。
660: デフォルトの名無しさん [sage] 2025/02/16(日) 14:24:06.62 ID:51aCbtwK(3/4) AAS
Linuxだと子プロセスから親プロセスに引き継ぐことができるらしい
(親プロセスが子プロセス生成時に親プロセス側でsourceコマンドを実行)
が、やっぱりWindowsでは無いみたい
外部リンク:learn.microsoft.com
>既定では、子プロセスは親プロセスの環境ブロックのコピーを継承します
>プロセスの作成時に子プロセスの環境変数を変更することは、1 つのプロセスが別のプロセスの環境変数を直接変更できる唯一の方法です。 プロセスは、そのプロセスの子ではない別のプロセスの環境変数を直接変更することはできません。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.033s