【.cmd】 バッチファイルスクリプト %15 【.bat】 (819レス)
上下前次1-新
98: 2022/12/05(月)19:02 ID:RxlUOQVH(1) AAS
>>96
原因の記号文字は何? ()<>&|%!"^ とか?
引用符(")が含まれていない場合は set "変数2=%変数1%"
含まれている場合はキャレット(^)で全部エスケープ
でもこれ「うまい方法」とは思えないけど
set /p 変数1=変数1=
set "変数2=" & set "CARET=^"
setlocal enabledelayedexpansion
:LOOP
set 変数2=!変数2!!CARET!!変数1:~0,1!
set 変数1=!変数1:~1!
if defined 変数1 goto LOOP
endlocal & set 変数2=%変数2%
rem 結果を確認する
set 変数1
set 変数2
99: 2022/12/05(月)23:44 ID:Xw9Qnajp(1) AAS
「変数1の値を変数2にset」という意味では良い方法だと思う。
でも変数間でコピーだけして終わりって事はまずないから
あとは>>96が自分のコードにどう馴染ませて組み込んだりヒントにできるかだろうなぁ。
100(2): 2022/12/06(火)10:31 ID:VnO+filq(1) AAS
いやこれだめだろ
試した?
101: 2022/12/06(火)11:36 ID:vjJKyhqV(1) AAS
続きはpowershellで
102(2): 2022/12/06(火)22:47 ID:LWPkE6+S(1) AAS
setlocal enabledelayedexpansion
for /f "delims=" %%i in ("set var2=!var1!") do endlocal & %%i
103: 2022/12/07(水)08:08 ID:6/SG3KPg(1) AAS
>>100
不具合は無さそう
>>102
これシンプルでいいね。エスケープ不要だし
104: 2022/12/07(水)14:11 ID:CzrTyJD4(1) AAS
何でも答えてくれるChatGPTに質問して教えてもらう時代になるかも
105: 2022/12/17(土)08:43 ID:P7hTh7GB(1) AAS
%*を他の変数に入れる方法あります?
106: 2022/12/17(土)13:02 ID:z3eWXHPR(1) AAS
set
107: 2022/12/17(土)13:56 ID:hGrODwcv(1) AAS
>>97
108: 2022/12/18(日)11:04 ID:3jhv+1oP(1) AAS
batch.cmd を batch.cmd echo ' ^& echo ^" ^& echo ! として実行した場合の
%*を他の変数に入れる方法あります?
109: 2022/12/18(日)14:23 ID:8FmKOvk1(1) AAS
方法は無いよ。たぶん
引数はやめてファイルで渡すか、set /p で入力したら
110: 2022/12/19(月)21:25 ID:OdY4312I(1) AAS
もしかして遅延展開が有効だったら
set VAR1=!VAR2!
は特殊文字おかまいなしの万能?
111(1): 2022/12/21(水)21:17 ID:yR9jaPsy(1) AAS
よくわからんけど >>102 でいけるなら
setlocal enabledelayedexpansion
for /f "delims=" %%i in ("!var1!") do endlocal & set var2=%%i
もいけそうで、それなら
for /f "tokens=1* delims==" %%i in ('set var1') do if %%i==var1 set var2=%%j
でもいけそう
112: 2022/12/21(水)22:08 ID:DgZmdBnN(1/3) AAS
上のは値の先頭が ; だと消える
eol^= にすればいい
下のは値の先頭が = だとその文字が消える
113: 2022/12/21(水)22:13 ID:DgZmdBnN(2/3) AAS
set var1 の出力は複数かもしれない
114: 2022/12/21(水)22:54 ID:DgZmdBnN(3/3) AAS
if で確認しているのか。失礼いたしました。
115(2): 2022/12/22(木)03:20 ID:rMNtcPRb(1/2) AAS
バッチファイル内でキー入力を受けとろうと思って
>SET /P YN_Check="(Y/N):"
>Echo 入力されたのは %YN_Check%
としたのですが、%YN_Check% にちゃんと入力した文字が入らないのですが、何故でしょうか…?
この2行だけのバッチファイルなら、問題なく入力した値が入るのですが、
本来その処理をしたいバッチファイル内に記述すると、とたんにおかしくなります…
Y にしても y になったり、y を入力してるのに N になったり訳が分からない。
116: 2022/12/22(木)08:07 ID:i1WKtawW(1) AAS
>>115
その本来の処理がおかしいと思われる
117: 2022/12/22(木)09:17 ID:GhJnH83b(1) AAS
echo onで眺めてみよう
環境変数は実行前に展開される
遅延展開という謎機能をしっているか?
118: 2022/12/22(木)10:18 ID:DSfJPeBV(1) AAS
for文とかの中で入れてるとかだろう
で変な値とかは実行前の変数に残ってる値
119: 115 2022/12/22(木)13:27 ID:rMNtcPRb(2/2) AAS
「遅延展開」なんて、全く知りませんでした。
ここで質問しなかったら、永遠に解決出来ませんでした。
有り難う御座いました!
120: 2022/12/23(金)08:34 ID:FT8V4kp7(1) AAS
特殊記号のドキュメントはどこで見られますか
121: 2022/12/24(土)00:46 ID:Q5Ixgqn/(1) AAS
powershellに実装されてない<とか&&とか||を隠ぺいするために抹消された
122: 2022/12/24(土)00:55 ID:oMpeQZG3(1) AAS
サポート対象外になったOSとかの技術情報がMSサイトから消されつつあるな
この問題を消すと増える法則が発動しないインターネットから情報消えすぎ問題と呼称したい
123: 2022/12/26(月)15:27 ID:aZQzx7UN(1) AAS
Using multiple commands and conditional processing symbols
外部リンク:learn.microsoft.com
124(1): 2023/01/03(火)11:08 ID:2hETcG3j(1/2) AAS
最近職場でbatファイルを知った者です。
住民様にご質問がございます。
自分の仕事の中に「デジカメで撮った今日の現場の写真をPCに移す」という作業があるのですが
そちらはbatファイルで対応することは可能なのでしょうか?
xcopyでバックアップではフォルダに過去の写真を残していないと毎回膨大な写真を写すことになってしまい
職場の脆弱なPCではすぐに容量オーバーしてしまいます。
今日の写真のみをPCに移す方法がもしあるなら恐れながらご教授していただけると助かります。
何卒宜しくお願いします。
125(1): 2023/01/03(火)13:27 ID:sLJn58EA(1) AAS
>>124
更新日時が今日以降のファイルをコピー先に今日の日付のフォルダを作ってコピー
set ymd=%date:~0,4%%date:~5,2%%date:~8,2%
robocopy コピー元 コピー先\%ymd% /S /MAXAGE:%ymd%
126(1): 2023/01/03(火)14:21 ID:axWhet1W(1/2) AAS
IF の中から GOTO で外に飛ぶと、括弧の使い方が間違っている
というエラーになるのですが、どうやって回避するのでしょうか?
127: 2023/01/03(火)15:15 ID:cXTWG1PB(1) AAS
>>126
コード出してみ
上下前次1-新書関写板覧索設栞歴
あと 692 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.018s