【.cmd】 バッチファイルスクリプト %15 【.bat】 (819レス)
上下前次1-新
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
コード出してみ
128(3): 2023/01/03(火)15:27 ID:VP4Ca8Qj(1) AAS
勝手な想像だけどgoto関数かラベルの次の行がカッコになってるパターンだと思う
goto :AAA
)
とか
:AAA
)
バッチファイルは実行時に1行になって解釈されるからこういう書き方だと例えば
else (goto :AAA)
となって閉じ括弧までがラベルの一部と解釈される
簡単な回避策としては括弧の前の行にremを挿入する
129: 2023/01/03(火)16:15 ID:JXGfY3Iz(1) AAS
別のところに原因があるんじゃ
コード出して
130: 2023/01/03(火)16:51 ID:z3dTsyyT(1) AAS
gotoは便利かもだけど、使わないにこしたことはない
131: 2023/01/03(火)16:58 ID:2hETcG3j(2/2) AAS
>>125
正月にもかかわらず手早い返信ありがとうございます!!!
早速組んでみます!!
ありがとうございました!!!
132: 2023/01/03(火)17:01 ID:axWhet1W(2/2) AAS
>>128
> 勝手な想像だけどgoto関数かラベルの次の行がカッコになってるパターンだと思う
まさにそれ、でした…
これは絶対に気付かないですよ…
有難う御座いました。
133: 2023/01/03(火)21:56 ID:krBOweAa(1) AAS
>>128
横から失礼。よく分からない。再現できない
134: ≠126 2023/01/04(水)01:32 ID:fBnUHAjh(1) AAS
>>128
それある
どうやって回避したのかもう忘れたが
参考になりました
135(1): 2023/01/04(水)03:00 ID:k64eH4zi(1/2) AAS
if %1 equ 1 (goto :true) else (goto :false)
goto :eof
:true
echo true
goto :eof
:false
echo false
これでエラーにならない(閉じ括弧を改行しても)
どうやればエラーになるの?
136(1): 2023/01/04(水)04:29 ID:diYqjiE/(1) AAS
>>135
gotoはエラーにならないね
if 1==1 (
if 2==2 goto :skip
echo test1
:skip
)
こんな感じでカッコの前にラベルおいてるとエラーになる
137: 2023/01/04(水)06:05 ID:3FgVyKvV(1) AAS
外部リンク:qiita.com
上下前次1-新書関写板覧索設栞歴
あと 682 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.025s