[過去ログ]
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net (1002レス)
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1489207631/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
1: デフォルトの名無しさん 転載ダメ©2ch.net [sageteoff] 2017/03/11(土) 13:47:11.66 ID:2LSSeyH1 拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる 質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。 ※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。 前スレ 【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net http://echo.2ch.net/test/read.cgi/tech/1424858999/ それ以前の過去スレ %10 http://peace.2ch.net/test/read.cgi/
tech/1374205515/ %9 http://toro.2ch.net/test/read.cgi/tech/1335015478/ %8 http://toro.2ch.net/test/read.cgi/tech/1315844420/ %7 http://hibari.2ch.net/test/read.cgi/tech/1298873550/ %6 http://hibari.2ch.net/test/read.cgi/tech/1277465356/ %5 http://pc12.2ch.net/test/read.cgi/tech/1242268171/ %4 http://pc12.2ch.net/test/read.cgi/tech/1229955189/ %3 http://pc11.2ch.net/test/read.cgi/tech/1217860043/ %2 http://pc12.2ch.net/test/read.cgi/tech/1197881068/ %1 http://pc11.2ch.net/test/read.cgi/tech
/1178281991/ http://mevius.5ch.net/test/read.cgi/tech/1489207631/1
2: デフォルトの名無しさん [sage] 2017/03/11(土) 14:16:25.14 ID:tWxSSf/m 2GET http://mevius.5ch.net/test/read.cgi/tech/1489207631/2
3: デフォルトの名無しさん [sage] 2017/03/11(土) 17:24:01.08 ID:aIgw+L4R そろそろ次スレ立てた方がいいと思う http://mevius.5ch.net/test/read.cgi/tech/1489207631/3
4: デフォルトの名無しさん [sage] 2017/03/11(土) 19:08:44.39 ID:ayh8mOJp タヒ http://mevius.5ch.net/test/read.cgi/tech/1489207631/4
5: デフォルトの名無しさん [sage] 2017/03/12(日) 22:04:13.40 ID:LKmH3irJ 達人の方々!お教えください set文による文字列の置き換えで =を置き換えたいのですが どのように記述すればよいのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1489207631/5
6: デフォルトの名無しさん [sage] 2017/03/13(月) 02:51:46.65 ID:ieWeiZc+ >>5 setの文字列置換では無理 =の個数が決まっているのならforでderims== 不特定なら一文字ずつ=かどうかを判定し=なら置換したい文字列を付け足し テストしてないから不備があるかもだけど以下みたいな感じで出来ると思う :ReplaceEqual if "%~1"=="" (echo ERROR&exit /b) set "str=%~1" set output= :CheckEqual if not defined str exit /b pause if "%str:~0,1%"=="=" ( set "output=%output%置換
後文字列" set "str=%str:~1%" goto :CheckEqual ) set "output=%output%%str:~0,1%" set "str=%str:~1%" goto :CheckEqual http://mevius.5ch.net/test/read.cgi/tech/1489207631/6
7: デフォルトの名無しさん [sage] 2017/03/13(月) 02:56:02.96 ID:ieWeiZc+ 済まん pause テストするつもりで入れてたのを消すの忘れてた まあそのままテストしてみて http://mevius.5ch.net/test/read.cgi/tech/1489207631/7
8: デフォルトの名無しさん [sage] 2017/03/13(月) 03:26:40.42 ID:Kv5ZfyaF :ReplaceEqual set "str=%~1" set output= :CheckEqual if "%str:~0,1%"=="=" ( set "output=%output%置換後文字列" set "str=%str:~1%" ) else ( set "output=%output%%str:~0,1%" set "str=%str:~1%" ) if defined str goto :CheckEqual exit /b http://mevius.5ch.net/test/read.cgi/tech/1489207631/8
9: デフォルトの名無しさん [sage] 2017/03/13(月) 07:40:38.20 ID:KSFKLeET >>6-8 ありがとうございます 色々試して見ます http://mevius.5ch.net/test/read.cgi/tech/1489207631/9
10: デフォルトの名無しさん [sage] 2017/03/13(月) 22:53:05.48 ID:UotY540z >>8と同じだけど、もう少し使いやすいI/Fにしたもの @echo off rem 文字列中には、",%(1つのみ) を入れないこと set "var==abc=def=!#$&'()=^~|-+*;:{}<>,./?\_%%" call :replace var "=" "=" echo "%var%" rem savety stopper goto :eof :replace setlocal set i=0 set s= :replace_loop call set "c=%%%1:~%i%,1%%" if not defined c (endlocal&set "%1=%s%"&goto :eof) i
f "%c%" equ "%~2" (set "s=%s%%~3") else (set "s=%s%%c%") set /a i+=1 goto :replace_loop http://mevius.5ch.net/test/read.cgi/tech/1489207631/10
11: デフォルトの名無しさん [sage] 2017/03/15(水) 08:22:32.42 ID:Ekd3hMdD cmderいいな この手のツールで表示が崩れたりせずまともに動くやつ見るの初めてだ http://mevius.5ch.net/test/read.cgi/tech/1489207631/11
12: デフォルトの名無しさん [sage] 2017/03/15(水) 19:39:27.45 ID:sbz59NLr for /r %%i in (*.jpg) のようなコマンドで取得した絶対パスをカレントフォルダとの相対パスに変換するにはどうするのが一番ですか? 現在はsetコマンドの置換機能でカレントフォルダの部分のパスを消しているんですがパスに変な文字列が入っていると誤作動を起こしそうで少し不安です。 もっとスマートなやり方はありますか? http://mevius.5ch.net/test/read.cgi/tech/1489207631/12
13: デフォルトの名無しさん [sage] 2017/03/16(木) 01:00:29.70 ID:DixFGYK0 >パスに変な文字列が入っていると どのみち%が入っているとバッチだと詰む。やれなくないけど物凄く面倒 バッチでは完全な文字列操作は無理だと割り切った方がいい PowerShell使えば? ttps://www.google.co.jp/search?&q=powershell+%E7%9B%B8%E5%AF%BE%E3%83%91%E3%82%B9+%E5%A4%89%E6%8F%9B http://mevius.5ch.net/test/read.cgi/tech/1489207631/13
14: デフォルトの名無しさん [sage] 2017/03/16(木) 01:47:18.14 ID:9KCSEqzj >>13 分かりました、何か別の方法を考えます http://mevius.5ch.net/test/read.cgi/tech/1489207631/14
15: デフォルトの名無しさん [sage] 2017/03/16(木) 02:25:05.07 ID:iKA3O6Cf >>14 実際の有効なパスが対象なんだから 問題となるのは上に出てきたequalを含んだフォルダがある場合だけだろう setlocal echo %cd%>tmpfile for %%i in (tmpfile) do set /a size=%%~zi-2 del tmpfile if %size% neq 3 set /a size+=1 for /r %%i in (*.txt) do ( set "p=%%~i" call set "p=%%p:~%size%%%" call echo ".\%%p%%" ) endlocal http://mevius.5ch.net/test/read.cgi/tech/1489207631/15
16: デフォルトの名無しさん [sage] 2017/03/16(木) 02:32:32.21 ID:iKA3O6Cf 肝心なのは、文字列操作、表示まで扱う場合は 文字列を必ず""で括るようにすること & % ^ 等を含んでると括ってないとおかしくなる http://mevius.5ch.net/test/read.cgi/tech/1489207631/16
17: デフォルトの名無しさん [sage] 2017/03/16(木) 04:08:08.29 ID:gadu0oc0 chcp 437 http://mevius.5ch.net/test/read.cgi/tech/1489207631/17
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 985 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.022s